Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб12.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
162.44 Кб
Скачать

Изменения в методе обработки события ColumnClick

В метод обработки события ColumnClick, определенный в предыдущем примере, необходимо внести изменения, чтобы он отслеживал столбец, выбранный щелчком мыши, и текущий порядок сортировки.

10. Добавьте следующий код, заменив код в методе обработки события ColumnClick, созданном в предыдущем примере (лучше, если вы создадите новый проект).

В этом коде добавлены некоторые логические операции перед установкой свойства ListViewItemSorter и вызовом метода Sort. Добавленный код определяет, совпадает ли элемент, на который щелкают в данный момент, с последним столбцом, выбранным щелчком мыши. Если они не совпадают, устанавливается переменная sortColumn, и свойство Sorting присваивается значению SortOrder.Ascending. Если переменная sortColumn и выбираемый в данный момент столбец совпадают, свойство Sorting изменяется на противоположный порядок сортировки. В этом примере свойство Sorting используется как способ определения порядка сортировки элементов. Поскольку для сортировки элементов используется пользовательский класс Comparer, установка свойства Sorting не влияет на операцию сортировки. Она используется просто как переменная в примере.

После определения порядка сортировки внесите последнее изменение в код метода обработки события ColumnClick: добавьте дополнительное значение параметра к созданию объекта ListViewItemComparer, который необходимо присвоить свойству ListViewItemSorter. Далее в этом примере показано, что класс ListViewItemComparer содержит новый параметр, определяющий порядок сортировки. Значение свойства ListView.Sorting используется, чтобы присвоить значение параметру.

Изменения в классе ListViewItemComparer

Чтобы этот пример мог сортировать по возрастанию или по убыванию, последние изменения необходимо внести в класс ListViewItemComparer. Добавленный код содержит логические операции, требуемые для сравнения элементов в любом режиме сортировки.

11. Добавьте следующий код, заменив код, определенный для ListViewItemComparer в предыдущем примере.

Этот код добавляет к конструктору параметр порядка сортировки и создает закрытую переменную, хранящую это значение. В код для метода Compare внесены изменения, позволяющие определить, является ли порядок сортировки порядком "по убыванию". Если да, то значение, возвращенное методом String.Compare, умножается на -1 и становится противоположным значению, возвращенному методом Compare.

Выполните код и щелкните на каком-либо столбце. Столбец сортируется по возрастанию. Щелкните на том же столбце еще раз, и он будет отсортирован по убыванию. Столбец дат не будет отсортирован должным образом, поскольку он сортируется как строка, а не как дата.

Оформите работу с скриншотами и ответьте на вопросы.

Контрольные вопросы

  1. Какое свойство элемента ListView позволяет добавлять к нему элементы?

  2. Как добавить подэлемент к элементу ListView?

  3. К чему применяется сортировка элемента ListView, представленная свойством Sorting?

4. Что нужно сделать, чтобы отобразить информацию о подэлементе в элементе управления ListView?