一个类如何通知别人它的数据被修改了?
本文关键字:数据 修改 别人 一个 何通知 通知 | 更新日期: 2023-09-27 18:06:46
假设有一个Person
类,它包含一些属性和其他一些类Address
等(我只是给出一个类{class{data}}的例子)
这样的一个实例被反序列化并加载到ui中。被使用的人可能会更改数据(名称、地址或其他东西)。
如果实例是ui中的数据源(在每个控件中),我如何知道数据是否已经更改,以便通知用户在退出之前保存?
您应该实现INotifyPropertyChanged
接口,它基本上暴露了Person
在属性更改时应该引发的事件。
链接的文档给出了一个DemoCustomer
类的示例,它很可能很容易转换为您的Person
类。
为了避免为您已经完成和将要完成的每个类的每个属性编写麻烦的代码,您可以使用AOP框架之一。这个是目前市场上最好的一个:PostSharp。还有一个免费的版本,这是一个好消息。(顺便说一下,要注意许可,以防你在工作中使用它)
在这里你可以找到一个例子,如何精确地使用注入NotifyPropertyChanged
http://www.sharpcrafters.com/solutions ui