INotifyPropertyChanged vs双向绑定

时间:2017-06-16 08:24:15

标签: c# .net data-binding inotifypropertychanged

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

谢谢

3 个答案:

答案 0 :(得分:1)

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

然后OneWay / TwoWay绑定只是选择绑定方向,你可以在这里找到更多:

Various wpf binding modes

答案 1 :(得分:0)

实施INotifyPropertyChanged只提供类别(不是实施它的人)对财产变化作出反应的可能性。

如果未实现该接口,则无法执行此操作,因为如果类实例(A}在B上设置了属性,则第三个类实例C无法跟踪该信息。设置该属性现在只是AB的关注点。如果C知道B确实实现了INotifyPropertyChanged,那么它可以简单地将事件处理程序添加到事件PropertyChanged(它是接口的一部分)并对其作出反应 - 仍希望B能按预期抛出事件。

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

答案 2 :(得分:0)

与名称一样,INotifyPropertyChanged会通知您的客户您的媒体资源已更改,请参阅MSDN

当属性发生变化时,您将需要它来更新UI。

OneWay (源自目标):Propertychange将导致UI更新,UI操作不会导致属性更改。 *

TwoWay (双向):Proerty和UI完全绑定,任何更改都会影响另一个。

只要在这种情况下为您的属性实现INotifyPropertyChanged,

绑定就可以正常工作。

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