[c#] ObservableDictionary 클래스

ObservableDictionary 클래스는 C#의 System.Collections.Generic 네임스페이스에 있는 IDictionary<TKey, TValue> 인터페이스를 구현하는 제네릭 타입의 컬렉션 클래스입니다. 이 클래스는 딕셔너리에 대한 변경 사항을 모니터링할 수 있도록 Observable Pattern을 구현하여, 딕셔너리에 항목이 추가, 제거, 갱신되었을 때 이벤트를 발생시킵니다.

사용 예시

using System.Collections.Specialized;

ObservableDictionary<string, int> dictionary = new ObservableDictionary<string, int>();

dictionary.Add("apple", 5);
dictionary.CollectionChanged += Dictionary_CollectionChanged;

static void Dictionary_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
    if (e.Action == NotifyCollectionChangedAction.Add)
    {
        foreach (KeyValuePair<string, int> item in e.NewItems)
        {
            Console.WriteLine($"Added: {item.Key}, {item.Value}");
        }
    }
}

위의 예시에서는 ObservableDictionary를 생성하고, 항목이 추가될 때 CollectionChanged 이벤트로 핸들러를 등록하는 방법을 보여줍니다. 이를 통해 dictionary에 새 항목이 추가될 때마다 이벤트 핸들러가 호출되어 콘솔에 추가된 항목을 출력합니다.

ObservableDictionary 클래스는 WPF와 같은 XAML 기반 UI 프레임워크에서 데이터 바인딩 용도로 자주 사용됩니다. 이를 통해 딕셔너리의 변경 사항을 실시간으로 UI에 반영할 수 있습니다.

ObservableDictionary 클래스는 .NET Framework 4.5 이상에서 사용 가능하며, System.Collections.ObjectModel 네임스페이스에 정의되어 있습니다.

참고 자료