当属性的属性发生更改时,调用OnPropertyChanged

时间:2013-04-06 18:07:04

标签: c# mvvm windows-runtime

我的viewmodel中有一个属性MyProperty,它也有一些属性。我想仅在其中一个属性发生变化时才显式调用OnPropertyChanged("MyProperty")

我可以这样做

MyProperty.PropertyChanged += MyPropertyChanged;

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

我需要这个的原因是因为我将MyProperty绑定到某些控件并且在转换器中我需要使用多个属性,但是当这些属性发生更改时,控件中不会显示更改。

1 个答案:

答案 0 :(得分:1)

如果MyProperty类型的属性从未绑定到任何东西,那么该类型没有理由实现INotifyPropertyChanged。无论是否有 - 如果您需要手动处理其中一个属性的更改,您只需定义一个自定义事件,当您在视图模型中更改和处理时,它会引发该事件。如果您已经在使用PropertyChanged并比较字符串 - 除非事件每秒发生多次,否则您应该没问题,