Silverlight:设置属性直接删除数据绑定(bind)?

标签 silverlight data-binding propertychanged

我正在修改一个 Silverlight 项目,该项目大量使用隐藏代码来设置属性等。这是几年前创建的,或多或少是从 WinForms 项目移植过来的。

我注意到的问题是,当我为属性设置数据绑定(bind)时,在本例中为可见性,如果该属性直接在后面的代码中设置,则数据绑定(bind)将被删除。我什至在 PropertyChanged 事件上设置断点来验证情况是否如此。

我已经做了很多 WPF 开发,但从未注意到这一点。这是正常的,我错过了还是不太对劲?

最佳答案

我觉得很正常。

绑定(bind)背后的概念是目标属性的值绑定(bind)到源对象的属性。绑定(bind)时,目标属性将始终反射(reflect)源属性的值。一旦您将自己的值分配给目标属性,目标属性就不再反射(reflect)来自源的值,您就破坏了两者之间的绑定(bind)。因此,设置您自己的值会删除绑定(bind)。

但是,如果您将绑定(bind)的 Mode 设置为 TwoWay,则 Silverlight 只需将新值分配给源对象上的属性,并自目标属性以来保持绑定(bind)仍然反射(reflect)源属性的值。

关于Silverlight:设置属性直接删除数据绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5918314/

相关文章:

Silverlight DataBinding,避免缺少属性时出现 BindingExpression Path 错误,而是隐藏控件

asp.net - 下拉列表 "has a SelectedValue which is invalid because it does not exist in the list of items"

c# - List<string> INotifyPropertyChanged 事件

c# - 在 Silverlight c# 中搜索名称识别

具有提升信任和签名证书的 Silverlight 4 OOB 应用程序不会更新?需要重新安装吗?

silverlight - 如何将一个xaml页面导航到另一个页面?

silverlight - 使用 <UserControl.Resources> 时,无法在 Designer 中创建 "ObjectName"的实例

WPF - 刷新数据模板的内容

javascript - 如何引发属性(property)变更事件?

WPF CustomControl : OnApplyTemplate called after PropertyChangedCallback