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或数据绑定情况无关
我已经阅读了aboutPropertyChanged
事件,而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还有什么替代品吗?非常感谢。