屬性變更告知事件是用於當透過內部或外部活動變更屬性值時,通知程式碼; 如此可讓程式碼視需要來更新相關的狀態 (例如,藉由更改使用者介面中的控制項外觀)。
請考慮在修改高階 API (通常是設計工具元件) 中的屬性值時,引發變更告知事件。
此方針適用於高階成員 (亦即變更告知會將重大的值加入到程式庫時)。 例如,提供使用者介面或與使用者介面互動的物件會使用變更告知,讓相依的 UI 物件可以適時地更新。 當沒有任何值加入到程式庫時 (此時,會頻繁地發生告知,因而對效能產生重大影響),不應該使用變更告知事件。 例如,每當從一般用途的集合中加入或移除元素時,引發變更告知事件是不正確的。 為了避免對常用型別增加不必要的複雜性,當需要這項功能時,應該使用特殊用途的集合。 .NET Framework 2.0 版程式庫提供 Collection<T> 做為一般用途的集合。 如果是需要告知的集合,Framework 也提供了 BindingList<T>。
請考慮在透過外部人力來變更屬性值時,引發變更告知事件。
如果因為某些外部人力 (例如,使用者輸入) 的緣故而讓屬性值變更,請在進行永久性變更之前先使用變更告知事件,以指示該值將會變更。 在進行永久性的變更之後,請使用另一個事件來指示該值已經變更。 例如,Control 類別會提供 Validating 和 Validated 事件,向程式碼告知控制項驗證。
Portions Copyright 2005 Microsoft Corporation. All rights reserved.
Portions Copyright Addison-Wesley Corporation. All rights reserved.
設計指引的詳細資訊,請參閱"框架設計準則:公約、 成語和可重複使用的模式。網路圖書館"書 Krzysztof Cwalina 和布拉德 · 艾布拉姆斯,2005年艾迪生 - 衛斯理,發表。