监视WPF中属性更改的正确方法

时间:2016-09-22 00:46:41

标签: c# wpf inotifypropertychanged

我在互联网上搜索了一些代码,这些代码监听INotifyPropertyChanged对象上正在更改的特定属性。其中大部分都是

形式
notifier.PropertyChanged +=
    (s,e) => {
        if(e.PropertyName.Equals(propertyName))
            run_my_code();
    }

然而,根据MSDN

  

PropertyChanged事件可以通过使用null或String.Empty作为PropertyChangedEventArgs中的属性名来指示对象上的所有属性都已更改。

上述实施应该

notifier.PropertyChanged +=
    (s,e) => {
        if(e.PropertyName.Equals(propertyName) || string.IsNullOrEmpty(e.PropertyName))
            run_my_code();
    }

?因为有太多的代码用另一种方式做了,这是否意味着我必须假设别的东西?当我通过null或空字符串通知属性更改时,我有时会遇到一些不起作用的代码。

1 个答案:

答案 0 :(得分:2)

这实际上取决于run_my_code将要做什么。 PropertyChanged事件仅表示对象上的一个或多个属性已更改。

如果run_my_code需要根据哪个属性发生变化做出决定,那么您需要检查。如果没有,那么你不需要检查。