我正在使用INotifyPropertyChanged
,以便我的类库中的域对象可以通知其执行方法的进度。这与WPF或DataBinding情况无关。
我已阅读documentation关于PropertyChanged
个事件,且PropertyChangedEventArgs
只有PropertyName
个属性:
在组件上更改属性时会引发
PropertyChanged
事件。PropertyChangedEventArgs
对象指定已更改的属性的名称。
PropertyChangedEventArgs
提供PropertyName
属性以获取已更改的属性的名称。
问题是:我需要获取已更改属性的VALUE,而不是其名称,所以我问:
有没有办法在
PropertyChanged
事件参数中获取属性的值?
(因为如果没有,我想我必须创建一个类似于ReportProgress
类的BackgroundWorker
事件,是吗?)
感谢阅读。
答案 0 :(得分:2)
您仍然可以通过处理PropertyChanged
来获取价值。只需使用该名称返回并获取值。
someObject.PropertyChanged += (sender, e) => {
var value = sender.GetType()
.GetProperty(e.PropertyName)
.GetValue(sender, null);
// do something with value?
};