更新 : 2007 年 11 月
プロパティ値が内部または外部動作を通じて変更されると、プロパティ変更通知イベントによってコードに通知されます。これにより、コードは、ユーザー インターフェイスのコントロールの外観を変更するなどして、必要に応じて関連する状態を変更できます。
高水準の API (通常、デザイナ コンポーネント) のプロパティ値が変更されるときは、変更通知イベントを生成するようにしてください。
このガイドラインは、変更通知によってライブラリの付加価値が高まるような高水準のメンバに適用されます。たとえば、ユーザー インターフェイスを提供したり、ユーザー インターフェイスと対話したりするオブジェクトで変更通知を使用すると、依存 UI オブジェクトを適宜更新できます。ライブラリに追加される値が存在しない場合、または通知が頻繁で、パフォーマンスに大きく影響するような場合は、変更通知イベントを使用しないでください。たとえば、要素を汎用コレクションに追加または削除するたびに変更通知イベントを生成するのは適切ではありません。よく使用される型が不必要に複雑化するのを避けるために、この機能が必要なときは専用のコレクションを使用してください。.NET Framework Version 2.0 ライブラリには、汎用コレクションとして Collection<T> が用意されています。また、通知が必要なコレクションのために BindingList<T> も用意されています。
プロパティの値が外的要因によって変更されるときは、変更通知イベントを生成することを検討してください。
ユーザー入力などの外的要因によってプロパティ値が変更される場合は、変更が永続化される前に変更通知イベントを使用して、値が変更されることを示します。変更が永続化された後は、別のイベントを使用して、値が変更されたことを通知します。たとえば、Control クラスでは、Validating イベントと Validated イベントを使用して、コントロールの検証をコードに通知できます。
Portions Copyright 2005 Microsoft Corporation.All rights reserved.
Portions Copyright Addison-Wesley Corporation.All rights reserved.
デザイン ガイドラインの詳細については、2005 年に Addison-Wesley から出版されている Krzysztof Cwalina、Brad Abrams 共著の『Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries』を参照してください。