【问题标题】:Do INotifyPropertyChanged notifies only the changes from the user interfaceINotifyPropertyChanged 是否仅通知来自用户界面的更改
【发布时间】:2016-08-06 14:06:50
【问题描述】:

Do INotifyPropertyChanged 仅通知来自用户界面的更改。而在其他方面,我们也可以说来自其他来源的属性值的更改不会通知用户界面?

【问题讨论】:

  • 不,INotifyPropertyChanged 与来自用户界面的通知无关。绑定会处理此问题,以响应不使用 INotifyPropertyChanged 的​​依赖属性更改通知。

标签: wpf mvvm data-binding view inotifypropertychanged


【解决方案1】:

INotifyPropertyChanged 接口用于通知客户端(通常是绑定客户端)属性值已更改。所以它保证了 UI 和源之间的通知,如果你希望通知是两种方式,你必须将绑定模式设置为 TwoWay 所以 INotifyPropertyChanged 只有在设置绑定时才从用户界面通知更改模式为OneWay 到源,如果你设置了绑定TwoWay,那么通知将从UI 到源,从源到UI。

【讨论】:

  • INotifyPropertyChanged 与通知绑定源更改的 UI 无关。它仅用于源通知目标。 Mode=TwoWay 确实会导致 Binding 更新源属性,但不会通过 INotifyPropertyChanged。
  • @EdPlunkett 请参考此链接:msdn.microsoft.com/en-us/library/…
  • 实际上我从 ICommand 继承的类中更改了哈希集的值。我想问一下,属性的 getter 中的 OnPropertyChanged 是否会通知此更改。 public HashSet EmpDeductions { get { return empDeductions; } 设置 { if(empDeductions != value) { empDeductions = value; OnPropertyChanged("EmpDeductions");净薪水 = 净薪水; } } }
  • @SyedKumailHaiderNaqvi 你应该编辑你的问题并发布一些代码以获得你想要的东西。
猜你喜欢
  • 2011-12-20
  • 1970-01-01
  • 1970-01-01
  • 2012-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多