c# 프로그램 사용자 지정 IComparer를 사용하여 CollectionViewSource 정렬



wpf 프로그램 (1)

CollectionViewSource에서 파생 된 컬렉션을 정렬하려고합니다. SortView는 정렬을 위해 단순히 SortDescriptions를가집니다. 불행히도 내 자신의 사용자 지정 IComparer를 사용할 수 있어야하지만 그 방법을 찾을 수 없습니다. DataGrid를 생각하면 나 자신의 다중 열 정렬 알고리즘이 있습니다. 한 가지 방법은 CollectionViewSource와 내 true 데이터 소스 사이에 추가 레이어 인 CollectionChanged를 구현하는 컬렉션을 사용하는 것이지만 모든 제안이 있으면 더 나은 방법을 선호한다고 생각합니다.


Bea Stollnitz에는 here 사용자 지정 정렬 예제가 here .

이 기사의 요점은 CollectionViewSource 를 약한 ICollection 또는 IEnumerable 인터페이스가 아닌 IList 구현에 바인딩하는 것입니다. 이를 통해 View 속성은 CollectionView 대신 ListCollectionView 인스턴스를 반환합니다. 그런 다음 ListCollectionView.CustomSort 를 사용하여 사용자 지정 정렬을 수행하기 위해 IComparer 를 할당 할 수 있습니다. 일을 더 쉽게하려면 Comparer<T>.Create 메서드를 사용하여 전체 클래스 대신 Comparison 대리자를 사용할 수도 있습니다.





wpf