У меня есть ListCollectionView, полученный из ViewModel в представлении:
var collectionView = (ListCollectionView)CollectionViewSource.GetDefaultView(ViewModel.Items);
И группировка и сортировка по определенным столбцам:
// group
collectionView.GroupDescriptions.Add(new PropertyGroupDescription("Index"));
// sort
collectionView.SortDescriptions.Add(new SortDescription("Index", ListSortDirection.Ascending));
collectionView.SortDescriptions.Add(new SortDescription("Key", ListSortDirection.Ascending));
Он работает, как ожидалось (первая группа отсортированы по индексу, а подпункты отсортированы по ключу в алфавитном порядке.
На данный момент я хочу использовать настраиваемую сортировку по ключевым словам с реализацией IComparer, и я пробовал использовать SortDescription с CustomSort, но CustomSort очищает SortDescription если используется. Таким образом, действует только CustomSort.
collectionView.CustomSort = new CustomItemKeyComparer(StringComparer.CurrentCulture);
collectionView.SortDescriptions.Add(new SortDescription("Index", ListSortDirection.Ascending));
Итак, как использовать CustomSort с сортировкой по нескольким столбцам в ListCollectionView?