Сортировка элемента управления ListView, используя все его столбцы в C#

Вы можете сделать сортировку ListView, установив для свойства Sorting значение Ascending или Descending, но это займет дополнительную работу по сортировке элемента управления ListView с использованием всех его столбцов. Обычно элемент управления сортирует только его элементы, а не их подпозиции. Он даже не будет использовать подпункты для разрыва связей, когда элементы имеют один и тот же текст. В этом примере он использует оба элемента и подпозиции.

Чтобы изменить поведение сортировки элемента управления, вы должны создать класс, реализующий интерфейс IComparer. (Инструкции по реализации интерфейса см. В статье Внедрить интерфейс в C# .)

Чтобы изменить поведение сортировки элемента управления, вы должны создать класс, реализующий интерфейс IComparer. (Инструкции по реализации интерфейса см. В статье Внедрить интерфейс в C# .) ...

Класс использует закрытую переменную SortOrder, чтобы отслеживать порядок сортировки. Это значение задается конструктором класса.

Класс использует закрытую переменную SortOrder, чтобы отслеживать порядок сортировки. Это значение задается конструктором класса.

...

Метод CompareValues сначала пытается сравнить значения как удвоения и даты. Например, поскольку строки «9» появляются после «100», но как цифры 9 до 100. Аналогично, как строки «10/10/2010» предшествуют «1/1/2009», но по мере того, как даты 10/10/2010 появляются после 1/1/2009. Сравнение значений как двойников и дат позволяет методу сортировать значения более значимо, чтобы они имели смысл для пользователя. Если значения не являются номерами или датами, код обрабатывает их как строки.

Следующий код показывает, как основная программа сортирует восходящий или нисходящий.

Когда вы нажимаете кнопку «По возрастанию», программа создает новый объект ListViewAllColumnComparer, передавая его конструктору параметр Ascending, чтобы сделать элементы сортировки сравнения в порядке возрастания. Затем он устанавливает сопоставление ListView элемента управления ListViewItemSorter. Элемент управления автоматически переупорядочивает его элементы.

Источник: http://csharphelper.com/blog/2014/09/sort-a-listview-control-using-all-of-its-columns-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)

Add a Comment

Ваш e-mail не будет опубликован. Обязательные поля помечены *