Сортировка ListView по тегу в C # - PullRequest
0 голосов
/ 20 марта 2019

У меня есть представление списка с некоторыми столбцами listViewItems.Когда я использую метод Sort listViewItems.Sort();, он сортирует текст по столбцам по умолчанию.Вот код, который я использую:

private void OnColumnClick(object sender, ColumnClickEventArgs e)
        {
            int sortColumn = 0; --I only want to sort if you click this column header, not others
            if (e.Column == sortColumn)
            {
                if (listViewItems.Sorting == SortOrder.Ascending)
                {
                    listViewItems.Sorting = SortOrder.Descending;
                }
                else
                {
                    listViewItems.Sorting = SortOrder.Ascending;
                }
            }
            listViewItems.Sort();

Однако у моих товаров есть тег, доступный по listViewItems[0].Tag;

. Я бы хотел использовать этот тег для сортировки списка (в моем случаеtag - это int), но я не знаю, как это сделать, и не могу найти информацию о чем-то подобном.Метод сортировки не принимает никаких параметров.Я пытался создать сортировщик столбцов, но он также ожидает столбец.

ListViewColumnSorter lvwColumnSorter;
lvwColumnSorter = new ListViewColumnSorter();
listViewItems.ListViewItemSorter = lvwColumnSorter;
lvwColumnSorter.SortColumn = ?;

Есть идеи?Заранее спасибо.

1 Ответ

1 голос
/ 20 марта 2019
var items = ListView.Items.Cast<ListViewItem>().OrderBy(x => x.Tag).ToList();
ListView.Items.Clear();
ListView.Items.AddRange(items.ToArray());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...