정렬을위한 SortDescriptions를 가진 CollectionViewSource에서 파생 된 컬렉션을 정렬하려고합니다. 불행히도 내 자신의 사용자 지정 IComparer를 사용할 수 있어야하지만 그 방법을 찾을 수 없습니다. DataGrid를 생각하면 나 자신의 다중 열 정렬 알고리즘이 있습니다. 한 가지 방법은 CollectionViewSource와 내 true 데이터 소스 사이에 추가 레이어 인 CollectionChanged를 구현하는 컬렉션을 사용하는 것이지만 모든 제안이 있으면 더 나은 방법을 선호한다고 생각합니다.사용자 지정 IComparer를 사용하여 CollectionViewSource 정렬
12
A
답변
13
Bea Stollnitz에는 사용자 지정 정렬 예가 here 있습니다.
이 기사의 요점은 약한 ICollection
또는 IEnumerable
인터페이스가 아닌 IList
구현으로 CollectionViewSource
을 바인드하는 것입니다. 이 경우 속성은 CollectionView
대신 ListCollectionView
인스턴스를 반환합니다. 그런 다음 ListCollectionView.CustomSort
을 사용하여 IComparer
을 할당하여 사용자 지정 정렬을 수행 할 수 있습니다. 작업을 쉽게하기 위해 Comparer<T>.Create
메서드를 사용하여 전체 클래스 대신 Comparison
대리자를 사용할 수도 있습니다.
관련 문제
- 1. Icomparer를 사용하여 특수 조건으로 정렬
- 2. SortedDictionary에 대한 사용자 지정 IComparer를 사용하는 방법?
- 3. LINQ로 사용자 지정 정렬
- 4. Gridview에서 사용자 지정 정렬
- 5. 사용자 지정 정렬 순서
- 6. 사용자 지정 정렬 방법을 허용하는 클래스 검색
- 7. 테이블의 사용자 지정 정렬 순서
- 8. 바운드 DataGridView의 사용자 지정 정렬
- 9. WPF CollectionViewSource 다중 뷰?
- 10. WPF Paged CollectionViewSource
- 11. CollectionViewSource CurrentItem
- 12. CollectionViewSource 질문
- 13. ArrayList 사용자 지정 정렬 일반 목록 <T> 사용자 지정 정렬
- 14. WinForms ListView에 대한 사용자 지정 정렬 구현
- 15. CollectionViewSource를 사용하는 그룹에 대한 사용자 지정 정렬 논리
- 16. 두 개의 인수로 사용자 지정 선택기를 사용하여 배열 정렬
- 17. ImageLIst를 사용하여 가상 ListView에 대한 사용자 지정 정렬
- 18. 사용자 지정 개체에 포함 된 사전을 사용하여 사용자 지정 개체의 배열 정렬 : 어떻게?
- 19. SQL Server의 사용자 지정 정렬 기능
- 20. 사용자 지정 정렬 (세 필드의 IComparer)
- 21. 사용자 지정 정렬 xml 바운드 DataGridView
- 22. UltraWebGrid - ASP .NET에서 사용자 지정 정렬
- 23. C# 사용자 지정 콤보 상자 정렬
- 24. jquery 사용자 지정 정렬 기준을 만드는 방법
- 25. 데이터 집합 열의 사용자 지정 정렬
- 26. MATLAB 사용자 지정 조건에 따른 정렬
- 27. C#에서 문자열 배열의 사용자 지정 정렬
- 28. WpfDatagrid Collectionviewsource clear
- 29. DataTemplate 내 CollectionViewSource 바인딩
- 30. CouchDB 정렬 - 데이터 정렬 지정
이 기사의 요점은'CollectionViewSource'를 약한'ICollection' 또는'IEnumerable' 인터페이스가 아닌'IList' 구현에 바인딩하는 것입니다. 그것으로,'View' 속성은'CollectionView' 대신에'ListCollectionView' 인스턴스를 반환합니다. 그런 다음'ListCollectionView.CustomSort'를 사용하여 사용자 정의 정렬을 수행하는 IComparer를 할당 할 수 있습니다. 작업을 쉽게하기 위해 [Comparer .Create'] (http://msdn.microsoft.com/en-gb/library/hh737198.aspx) 메서드를 사용하여 a 대신 'Comparison' 대리자를 사용할 수 있습니다. 전체 클래스. –
ygoe