我的viewmodel中有一个属性MyProperty
,它也有一些属性。我想仅在其中一个属性发生变化时才显式调用OnPropertyChanged("MyProperty")
。
我可以这样做
MyProperty.PropertyChanged += MyPropertyChanged;
然后在所有属性发生更改时调用处理程序。我知道我可以检查PropertyName
是否匹配,但我想知道是否有更好的方法。
我需要这个的原因是因为我将MyProperty
绑定到某些控件并且在转换器中我需要使用多个属性,但是当这些属性发生更改时,控件中不会显示更改。
答案 0 :(得分:1)
如果MyProperty类型的属性从未绑定到任何东西,那么该类型没有理由实现INotifyPropertyChanged。无论是否有 - 如果您需要手动处理其中一个属性的更改,您只需定义一个自定义事件,当您在视图模型中更改和处理时,它会引发该事件。如果您已经在使用PropertyChanged并比较字符串 - 除非事件每秒发生多次,否则您应该没问题,