INotifyCollectionChanged インターフェイス


項目が追加、削除された場合やリスト全体がクリアされた場合など、動的な変更をリスナーに通知します。Notifies listeners of dynamic changes, such as when an item is added and removed or the whole list is cleared.

public interface class INotifyCollectionChanged
public interface INotifyCollectionChanged
type INotifyCollectionChanged = interface
Public Interface INotifyCollectionChanged


IEnumerable インターフェイスを実装する任意のコレクションを列挙できます。You can enumerate over any collection that implements the IEnumerable interface. ただし、コレクションの挿入または削除によって UIUI が自動的に更新されるように動的バインディングを設定するには、コレクションで INotifyCollectionChanged インターフェイスが実装されている必要があります。However, to set up dynamic bindings so that insertions or deletions in the collection update the UIUI automatically, the collection must implement the INotifyCollectionChanged interface. このインターフェイスは、基になるコレクションが変更されるたびに発生する必要がある CollectionChanged イベントを公開します。This interface exposes the CollectionChanged event that must be raised whenever the underlying collection changes.

WPFWPF には、INotifyCollectionChanged インターフェイスを公開するデータコレクションの組み込みの実装である ObservableCollection<T> クラスが用意されています。provides the ObservableCollection<T> class, which is a built-in implementation of a data collection that exposes the INotifyCollectionChanged interface. 例については、「方法: system.collections.objectmodel.observablecollection を作成してバインドする」を参照してください。For an example, see How to: Create and Bind to an ObservableCollection.

コレクション内の個々のデータオブジェクトは、「バインディングソースの概要」で説明されている要件を満たしている必要があります。The individual data objects within the collection must satisfy the requirements described in the Binding Sources Overview.

独自のコレクションを実装する前に、ObservableCollection<T> または既存のコレクション クラス (List<T>Collection<T>BindingList<T> など) のいずれかを使用することを検討してください。Before implementing your own collection, consider using ObservableCollection<T> or one of the existing collection classes, such as List<T>, Collection<T>, and BindingList<T>, among many others.

高度なシナリオがあり、独自のコレクションを実装する場合は、IListを使用することを検討してください。これにより、インデックスによって個別にアクセスできるオブジェクトの非ジェネリックコレクションが提供され、最適なパフォーマンスが得られます。If you have an advanced scenario and want to implement your own collection, consider using IList, which provides a non-generic collection of objects that can be individually accessed by index and provides the best performance.



コレクションに変更が生じた場合に発生します。Occurs when the collection changes.