当一个属性的属性发生变化时调用OnPropertyChanged

本文关键字:属性 变化 调用 OnPropertyChanged 一个 | 更新日期: 2023-09-27 18:07:54

我有一个属性MyProperty在我的视图模型也有一些属性。我想只在OnPropertyChanged("MyProperty")的一个属性改变时显式地调用它。

I can do this

MyProperty.PropertyChanged += MyPropertyChanged;

,但是当所有属性发生变化时调用处理程序。我知道我可以检查PropertyName是否匹配,但我想知道是否有更好的方法。

我需要这样做的原因是因为我将MyProperty绑定到一些控件,并且在转换器中我需要使用它的多个属性,但是当这些属性更改时,更改在控件中不可见。

当一个属性的属性发生变化时调用OnPropertyChanged

如果MyProperty类型的属性从未绑定到任何东西,那么该类型就没有理由实现INotifyPropertyChanged。不管它是否这样做——如果你需要手动处理它的一个属性的变化,你可以简单地定义一个自定义事件,当它发生变化时引发并在视图模型中处理。如果您已经在使用PropertyChanged并比较字符串—您应该没问题,除非事件每秒发生多次,