[英]INotifyPropertyChanged vs Two way binding
我是C#的新手,我想知道为什么当我们使用TwoWay绑定时必须实现INotifyPropertyChanged接口吗? 而且对于OneWay而言?
谢谢
简而言之,为了支持OneWay / TwoWay绑定,基础数据必须实现INotifyPropertyChanged 。
然后,OneWay / TwoWay绑定只是选择绑定方向,您可以在此处找到更多信息:
实现INotifyPropertyChanged
只是为类(实现类除外)提供了对属性更改做出反应的可能性。
如果未实现该接口,则这是不可能的,因为如果类实例(例如A
在B
上设置了属性,则第三类实例C
无法跟踪该信息。 现在设置该属性仅是A
和B
。 但是,如果C
知道B
确实实现了INotifyPropertyChanged
,则它可以简单地向事件PropertyChanged
(它是接口的一部分)添加一个事件处理程序,并对它做出反应-仍然希望B
能够按预期抛出该事件。
绑定需要该信息来更新模型(数据)或视图,具体取决于更改发生的位置。 因此,基本上,他们是C
侦听其他对象( A
和B
)的更改。
INotifyPropertyChanged与名称一样,是用来通知您的客户端您的属性已更改,请参阅MSDN。
属性更改时,将需要它来更新UI。
OneWay (源到目标):Propertychange将导致UI更新,而UI操作将不会导致propertychange。 *
TwoWay (双向):属性和UI完全绑定,它们中的任何更改都会影响另一个。
在这种情况下,只要为属性实现INotifyPropertyChanged,绑定就起作用。
如果不这样做,即使您使用Twoway,也不会有任何改变。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.