1

我正在使用INotifyPropertyChanged,以便类库中的域对象可以通知其执行方法的进度。这与 WPF 或 DataBinding 情况无关。

我已阅读有关事件的文档,并且只有一个属性:PropertyChangedPropertyChangedEventArgsPropertyName

PropertyChanged组件上的属性发生更改时会引发事件。对象指定更改的PropertyChangedEventArgs属性的名称。

PropertyChangedEventArgs提供PropertyName属性以获取更改的属性的名称。

问题是:我需要获取已更改属性的 VALUE,而不是其名称,所以我问:

有没有办法在PropertyChanged事件 args 中获取属性的值?

(因为如果不是,我想我将不得不为自己创建一个ReportProgress类似于BackgroundWorker课堂的事件,对吗?)

谢谢阅读。

4

1 回答 1

2

您仍然可以通过处理来获得价值PropertyChanged。只需使用名称返回并获取值。

someObject.PropertyChanged += (sender, e) => {
    var value = sender.GetType()
        .GetProperty(e.PropertyName)
        .GetValue(sender, null);
    // do something with value?
};

签出Type.GetProperty()PropertyInfo.GetValue()

于 2013-11-20T17:16:27.833 回答