一个类如何通知某人其数据已被更改?

时间:2011-08-28 15:54:58

标签: c# winforms

假设有一个Person类包含一些属性和一些其他类Address等(我只是给出一个类{class {data}}的例子)

这个实例被反序列化并加载到ui中。使用过的可能会更改数据(名称,地址或其他内容)。

如果实例是ui中的数据源(在每个控件中),我怎么知道数据是否已被更改以便在退出之前通知用户保存?

2 个答案:

答案 0 :(得分:5)

您应该实现INotifyPropertyChanged接口,该接口基本上公开了Person在属性更改时应该引发的事件。

链接文档提供了一个DemoCustomer类的示例,该类可能很容易转换为Person类。

答案 1 :(得分:3)

为了避免为您所做和将要执行的每个类的每个属性设置令人讨厌的代码,您可以使用AOP框架之一。这是目前市场上最好的产品之一:PostSharp。还有一个免费版本,这是一个好消息。 (顺便说一句,请注意许可,以防你在工作中使用它)

在这里你可以找到一个如何精确使用注入NotifyPropertyChanged的例子

http://www.sharpcrafters.com/solutions#ui

希望这会有所帮助..