我是c#的新手,我想知道为什么我们在使用TwoWay绑定时必须实现 INotifyPropertyChanged 接口?而对于OneWay也??
谢谢
答案 0 :(得分:1)
简而言之,支持OneWay / TwoWay绑定,基础数据必须实施 INotifyPropertyChanged 。
然后OneWay / TwoWay绑定只是选择绑定方向,你可以在这里找到更多:
答案 1 :(得分:0)
实施INotifyPropertyChanged
只提供类别(不是实施它的人)对财产变化作出反应的可能性。
如果未实现该接口,则无法执行此操作,因为如果类实例(A
}在B
上设置了属性,则第三个类实例C
无法跟踪该信息。设置该属性现在只是A
和B
的关注点。如果C
知道B
确实实现了INotifyPropertyChanged
,那么它可以简单地将事件处理程序添加到事件PropertyChanged
(它是接口的一部分)并对其作出反应 - 仍希望B
能按预期抛出事件。
绑定需要该信息来更新模型(数据)或视图,具体取决于发生更改的位置。基本上,他们C
正在侦听其他对象的更改(A
& B
)。
答案 2 :(得分:0)
与名称一样,INotifyPropertyChanged会通知您的客户您的媒体资源已更改,请参阅MSDN
当属性发生变化时,您将需要它来更新UI。
OneWay (源自目标):Propertychange将导致UI更新,UI操作不会导致属性更改。 *
TwoWay (双向):Proerty和UI完全绑定,任何更改都会影响另一个。
只要在这种情况下为您的属性实现INotifyPropertyChanged,绑定就可以正常工作。
如果你不这样做,即使你使用Twoway也不会有任何改变。