C# - 如何确定属性是否已更改

时间:2010-02-10 16:34:02

标签: c# properties propertydescriptor propertychanged

我需要知道公共财产(具有吸气剂和安装者)是否已经改变。该属性是一个简单的类(没有用户控件/组件等) 是否有一种优雅的方式来订阅某种事件,通知何时财产被更改? 我试着看看微软在他们的Binding对象中做了什么(使用反射器),这让我探索了PropertyDescriptor.AddValueChanged方法,但它对我没用。也许它仅适用于组件/用户控件......

有什么建议吗?

谢谢,
阿迪巴尔达

2 个答案:

答案 0 :(得分:12)

只需实现INotifyPropertyChanged界面:
http://msdn.microsoft.com/en-us/library/system.componentmodel.inotifypropertychanged.aspx

这是一个非常着名的接口,绑定API使用它。只需按照该msdn页面上的示例实现进行操作。

答案 1 :(得分:2)

INotifyPropertyChanged应该可以工作,但您也可以创建自己的特定于该属性的事件,而无需在system.componentmodel中拖动。