WPF ObservableCollection 사용

일반적인 List<T>를 바인딩하면 데이터 추가 시 UI가 갱신되지 않는 문제가 발생한다.

이를 해결하기 위해 WPF에서는 데이터 변화를 감지하고 UI에 통지하는 ObservableCollection을 사용한다.

실시간 동기화의 핵심인 이 컬렉션의 특성을 정리했다.

ObservableCollection: UI 동기화 리스트

ObservableCollection은 요소의 추가나 삭제 발생 시 UI에 갱신 신호를 전송한다.

수동으로 화면 갱신 코드를 작성할 필요가 없다.

public class MainViewModel : Notifier
{
    // UI와 자동 동기화되는 리스트
    public ObservableCollection<string> Items { get; } = new ObservableCollection<string>();

    public ICommand AddCommand => new RelayCommand(() => {
        Items.Add($"새 항목 {Items.Count + 1}"); // 추가 시 즉시 UI 반영
    });
}

List와의 차이점 분석

ObservableCollection 사용이 권장되는 이유는 데이터와 UI 간의 통신 기능 때문이다.

  • List: 데이터는 변경되나 UI는 이를 감지할 수 없다.
    수동으로 바인딩을 갱신해야 하는 번거로움이 있다.

  • ObservableCollection: INotifyCollectionChanged 인터페이스를 내장하여 ListViewListBox 등의 컨트롤이 데이터 변화를 즉시 감지하고 업데이트를 수행한다.

실시간 데이터 관리의 핵심 요소

ObservableCollection은 WPF 개발에서 필수적인 요소이다.

동기화 로직을 프레임워크에 위임함으로써 개발자는 비즈니스 로직에 집중할 수 있다.

데이터와 화면이 유기적으로 연동되는 UI 구축을 위한 중요한 도구인 것 같다.

Author avatar

웨이호프

WordPress creator and blogger.

View all posts