ListView
은 XAML을 통해 ObservableCollection
에 바인딩됩니다. 필자는 코드에서 정렬 작업을하곤했지만, 정렬 작업을 새로 고쳐야한다는 점을 염두에 두어야 할 많은 작업이 있습니다.XAML에서 ObservableCollection에 바인딩 된 ListView를 정렬합니다.
그래서 좀 더 깨끗하게 만들고 XAML에서 직접 동적으로 정렬하려고했습니다.
불행히도 태그/속성을 찾을 수 없습니다. 내가 찾은 모든 예제는 최소한 XAML에서 지원되지 않는 것으로 보이는 <CollectionViewSource.SortDescription>
을 사용하는 WPF 응용 프로그램을위한 것입니다.
내가 사용한 UWP 커뮤니티 툴킷에서 AdvancedCollectionView
컨트롤을 찾았습니다. 이 컨트롤은 기존 ObservableCollection을 사용하며 ListView (소스)는 이제이 AdvancedCollectionView에 바인딩됩니다.
작동하는 것 같습니다. 그래서 무엇이 문제입니까? 1) 많은 라이센스를 가진 거대한 Nu-Get 패키지를 사용해야합니다 :-)) 2) ListView (단일 항목)에 바인딩 된 클래스에 대해 INotifyPropertyChanged를 구현하여 2) ListView는 속성 (예 : 항목의 제목이 변경됩니다. 이것은 AdvancedCollectionView로 바뀌기 전에 이전에 사용되었지만 이제는 이벤트 발생자가 NullReferenceExcpetion
을 던졌습니다.
그래서 이제 바인딩 된 속성으로 ListView를 정렬하는 간단한 작업을 수행하는 Out-of-the-Box 방법이 없는지 스스로에게 묻습니다.
:
나는 버그를 reporeted 및 수정 커뮤니티 툴킷 버전 2.2에있을 것입니다 것 같습니다? 코드가없는 xaml에서 그냥하고 싶다는 뜻입니까? 심지어 'AdvancedCollectionView'는 뒤에 정렬 코드를 수행합니다. 패키지 참조가 필요합니다. 요구 사항을 충족시킬 수 있습니까? –커뮤니티 툴킷은 오픈 소스이기 때문에 자신 만의 도우미 클래스를 만드는 데 필요한 섹션을 참조 할 수 있습니다. –
나는 ObservableCollection을 Sort() 확장 메소드로 "수동으로"정렬했다. – Patric