属性更改通知事件

更新:2007 年 11 月

属性更改通知事件用于在属性值因内部或外部活动发生更改时向代码发出通知。这使得代码可以根据需要更新相关状态(例如,改变用户界面中控件的外观)。

当修改高级 API(通常是设计器组件)中的属性值时,应考虑引发更改通知事件。

这项准则适用于那些可通过更改通知将重要值添加到库的高级成员。例如,提供用户界面或与之交互的对象使用更改通知使相关用户界面对象相应地得到更新。当不向库添加值或通知会频繁地执行以致对性能造成严重影响的情况下,不应使用更改通知事件。例如,在每次向常规集合添加元素或将元素从中删除时就引发更改通知事件是不正确的。若要避免给常用类型增加不必要的复杂性,在需要这一功能时应使用一个专用集合。.NET Framework 2.0 版的库提供了 Collection<T>,该集合用作常规集合。Framework 还为需要通知的集合提供了 BindingList<T>

当属性值由于外部因素发生更改时,应考虑引发更改通知事件。

如果属性值由于某种外部因素(如用户输出)发生更改,则应在更改永久生效之前使用更改通知事件指示该值即将更改。在更改永久生效后,可使用另一事件指示该值已进行了更改。例如,Control 类提供了 ValidatingValidated 事件来向代码发出验证控件的通知。

部分版权所有 2005 Microsoft Corporation。保留所有权利。

部分版权所有 Addison-Wesley Corporation。保留所有权利。

有关设计指南的更多信息,请参见 Krzysztof Cwalina 和 Brad Abrams 编著、Addison-Wesley 于 2005 年出版的“Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries”(《框架设计指南:可重用 .NET 库的约定、术语和模式》)。

请参见

概念

索引属性设计

属性设计

其他资源

成员设计准则

类库开发的设计准则