C# 4.0 在实现INPC时,是否可以获取已更改属性的值而不仅仅是其名称?

C# 4.0 在实现INPC时,是否可以获取已更改属性的值而不仅仅是其名称?,c#-4.0,inotifypropertychanged,propertychanged,C# 4.0,Inotifypropertychanged,Propertychanged,我正在使用INotifyPropertyChanged,以便类库中的域对象可以通知其执行方法的进度。这与WPF或数据绑定情况无关 我已经阅读了aboutPropertyChanged事件,而PropertyChangedEventArgs只有一个PropertyName属性: 当组件上的属性发生更改时,将引发PropertyChanged事件。PropertyChangedEventArgs对象指定更改的属性的名称 PropertyChangedEventArgs提供PropertyName属性

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

我已经阅读了about
PropertyChanged
事件,而
PropertyChangedEventArgs
只有一个
PropertyName
属性:

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

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

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

是否有方法获取
PropertyChanged
事件参数中的属性值

(因为如果没有,我想我必须创建一个
ReportProgress
事件,类似于
BackgroundWorker
类,对吗?)


感谢阅读。

您仍然可以通过处理
属性更改
来获取值。只需使用名称返回并获取值

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

签出并执行操作。

发送者.GetType().GetProperty(“PropertyName”).GetValue(发送者,null)
为什么要为此进行NPC?使用
IProgress
/
Progress
@mikez不幸的是,我在VisualStudio 2010中使用的是C#4.0。。。那你知道INPC还有什么替代品吗?非常感谢。