Сортировка столбцов по алфавиту в LISTVIEW в WPF

У нас есть приложение WPF, в котором мы в ListView в одной форме, мы хотим заказать элемент буквенно-цифровой.

Когда мы сортируем столбцы, нужно сортировать буквенно-цифровые EG

AW1 AW2 AW3

На данный момент это сортировка

AW1 AW100 AW2 AW200

Так что нужно менять?

 if (lastDirection == ListSortDirection.Ascending)
                    {
                        direction = ListSortDirection.Descending;
                    }
                    else
                    {
                        direction = ListSortDirection.Ascending;
                    }

А также

   // get the sort property name from the column's information.
                string sortPropertyName = sortableGridViewColumn.SortPropertyName;

                // Sort the data.
                Sort(sortPropertyName, direction);

Функция сортировки, как это,

private void Sort(string sortBy, ListSortDirection direction)
    {
        lastDirection = direction;
        ICollectionView dataView = CollectionViewSource.GetDefaultView(this.ItemsSource);

        dataView.SortDescriptions.Clear();
        SortDescription sd = new SortDescription(sortBy, direction);

        dataView.SortDescriptions.Add(sd);
        dataView.Refresh();
    }

1 ответ

Сравнение строк выполняется посимвольно слева направо. Поэтому, если вы измените имена столбцов на AW001, AW100, AW002, AW200, ваша сортировка будет работать нормально.

Другие вопросы по тегам