Сортировка столбцов по алфавиту в 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, ваша сортировка будет работать нормально.