繁体   English   中英

INotifyPropertyChanged与双向绑定

[英]INotifyPropertyChanged vs Two way binding

我是C#的新手,我想知道为什么当我们使用TwoWay绑定时必须实现INotifyPropertyChanged接口吗? 而且对于OneWay而言?

谢谢

简而言之,为了支持OneWay / TwoWay绑定,基础数据必须实现INotifyPropertyChanged

然后,OneWay / TwoWay绑定只是选择绑定方向,您可以在此处找到更多信息:

各种WPF绑定模式

实现INotifyPropertyChanged只是为类(实现类除外)提供了对属性更改做出反应的可能性。

如果未实现该接口,则这是不可能的,因为如果类实例(例如AB上设置了属性,则第三类实例C无法跟踪该信息。 现在设置该属性仅是AB 但是,如果C知道B确实实现了INotifyPropertyChanged ,则它可以简单地向事件PropertyChanged (它是接口的一部分)添加一个事件处理程序,并对它做出反应-仍然希望B能够按预期抛出该事件。

绑定需要该信息来更新模型(数据)或视图,具体取决于更改发生的位置。 因此,基本上,他们是C侦听其他对象( AB )的更改。

INotifyPropertyChanged与名称一样,是用来通知您的客户端您的属性已更改,请参阅MSDN。

属性更改时,将需要它来更新UI。


OneWay (源到目标):Propertychange将导致UI更新,而UI操作将不会导致propertychange。 *

TwoWay (双向):属性和UI完全绑定,它们中的任何更改都会影响另一个。

在这种情况下,只要为属性实现INotifyPropertyChanged,绑定就起作用。

如果不这样做,即使您使用Twoway,也不会有任何改变。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM