컬렉션 뷰 작업
WPF 컨트롤은 데이터 컬렉션에 바인딩될 때 컬렉션 자체에 직접 바인딩되지는 않습니다. 대신 해당 컬렉션을 자동으로 래핑하는 뷰에 암시적으로 바인딩됩니다. 이 뷰는 ICollectionView 인터페이스를 구현하며 여러 구체적인 구현 중 하나일 수 있습니다(예: ListCollectionView).
컬렉션 뷰는 여러 가지 역할을 합니다. 컬렉션 뷰는 컬렉션의 현재 항목을 추적하는데, 이러한 항목은 일반적으로 목록 컨트롤의 활성/선택된 항목으로 해석됩니다. 또한 컬렉션 뷰는 목록 항목의 정렬, 필터링 및 그룹화에 대한 포괄적 수단을 제공합니다. 컬렉션을 둘러싼 하나의 뷰에 여러 컨트롤을 바인딩하여 서로 조화를 이루도록 할 수 있습니다. 다음 코드는 ICollectionView의 기능 일부를 보여 줍니다.
 
// Get the default view wrapped around the list of Customers.
ICollectionView view = CollectionViewSource.GetDefaultView(allCustomers);

// Get the Customer selected in the UI.
Customer selectedCustomer = view.CurrentItem as Customer;

// Set the selected Customer in the UI.
view.MoveCurrentTo(someOtherCustomer);

 

컬렉션 뷰의 CurrentItem 속성과 동기화된 상태를 유지하려면 목록 상자, 콤보 상자 및 목록 뷰와 같은 모든 목록 컨트롤의 IsSynchronizedWithCurrentItem 속성이 true로 설정되어야 합니다. 이 속성은 추상 Selector 클래스가 정의합니다. 이 속성이 true로 설정되지 않으면 목록 컨트롤에서 항목을 선택해도 컬렉션 뷰의 CurrentItem이 업데이트되지 않고 CurrentItem에 새 값을 할당해도 해당 목록 컨트롤에 이 값이 반영되지 않습니다.

 

Data and WPF: 데이터 바인딩과 WPF를 사용한 데이터 표시 사용자 지정

+ Recent posts