当一个属性的属性发生变化时调用OnPropertyChanged
本文关键字:属性 变化 调用 OnPropertyChanged 一个 | 更新日期: 2023-09-27 18:07:54
我有一个属性MyProperty
在我的视图模型也有一些属性。我想只在OnPropertyChanged("MyProperty")
的一个属性改变时显式地调用它。
I can do this
MyProperty.PropertyChanged += MyPropertyChanged;
,但是当所有属性发生变化时调用处理程序。我知道我可以检查PropertyName
是否匹配,但我想知道是否有更好的方法。
我需要这样做的原因是因为我将MyProperty
绑定到一些控件,并且在转换器中我需要使用它的多个属性,但是当这些属性更改时,更改在控件中不可见。
如果MyProperty类型的属性从未绑定到任何东西,那么该类型就没有理由实现INotifyPropertyChanged。不管它是否这样做——如果你需要手动处理它的一个属性的变化,你可以简单地定义一个自定义事件,当它发生变化时引发并在视图模型中处理。如果您已经在使用PropertyChanged并比较字符串—您应该没问题,除非事件每秒发生多次,