我在互联网上搜索了一些代码,这些代码监听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或空字符串通知属性更改时,我有时会遇到一些不起作用的代码。
答案 0 :(得分:2)
这实际上取决于run_my_code
将要做什么。 PropertyChanged
事件仅表示对象上的一个或多个属性已更改。
如果run_my_code
需要根据哪个属性发生变化做出决定,那么您需要检查。如果没有,那么你不需要检查。