Отсортировать ListView по дате

У меня есть WPF ListView со столбцом, в котором есть даты. Я хотел бы способ пользовательской сортировки дат (по значению даты, а не по строковому значению). Есть ли способ сделать это? Прямо сейчас я использую list.Предметы.SortDescriptions для сортировки с помощью другого столбца, но я хотел бы изменить это, чтобы сортировать по столбцу даты.

спасибо.

3 ответов


вы пробовали это делать ?

ICollectionView view = CollectionViewSource.GetDefaultView(listView.ItemsSource);
view.SortDescriptions.Add(new SortDescription("Date", ListSortDirection.Descending));

EDIT: вы также можете посмотреть на это вложенное свойство


Если вы обнаружите, что способ сортировки WPF по умолчанию не является тем, что вы намеревались, вы можете предоставить пользовательский сортировщик для представления по умолчанию:

ListCollectionView view = 
  (ListCollectionView)CollectionViewSource.GetDefaultView(listView.ItemsSource);
view.CustomSort = new DateValueSorter();
listView.Items.Refresh();

где DateValueSorter-это класс, который реализует интерфейс IComparer и сортирует в соответствии со значением даты и производит заказ, который вы ищете.


используйте ObservableList и пользовательский тип объекта - и выполните сортировку самостоятельно. Подключите ListView к ObservableList с помощью ItemsSource.

..., или вы можете попробовать сделать то, что описывает этот блог;Сортировка ListViews