【问题标题】:WPF what happens when a one way bound property is manually modifiedWPF 手动修改单向绑定属性时会发生什么
【发布时间】:2013-07-11 02:13:48
【问题描述】:

我只是好奇。例如,如果自定义用户控件的宽度绑定到某个其他用户控件的实际宽度,但在某些事件期间手动更改了用户控件中的宽度。属性会不同步吗?绑定会不会正常工作?还是在下次源属性更改之前,该属性会不同步?

【问题讨论】:

    标签: wpf xaml binding


    【解决方案1】:

    需要更多的差异化。第一:是什么样的绑定?如果您有 OneWay 绑定,那么当目标被修改时,您将失去同步。 TwoWay 或 OneWayToSource 将导致源更新(反馈)

    在 OneWay 更改值的情况下不会远程绑定,正如 @goose 指出的,当源将触发 PropertyChanged 事件时,目标目标将再次重新同步。

    如果您希望删除绑定,请使用您要清除的 DependencyProperty 或 BindingExpression.ClearAllBindings 调用 BindingExpression.ClearBinding。

    【讨论】:

      【解决方案2】:

      当修改单向绑定属性时,绑定将不再正常工作。即使之后使用 set 方法更改了属性并且 NotifyPropertyChanged 正确,宽度也将保持不变。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-07-07
        • 1970-01-01
        • 1970-01-01
        • 2019-07-23
        • 2011-01-23
        • 2015-05-25
        • 1970-01-01
        相关资源
        最近更新 更多