-1

我们有 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();
    }
4

1 回答 1

0

字符串比较是从左到右逐个字符进行的。因此,如果您将列名更改为AW001、 AW100 、AW002、 AW200 ,您的排序将正常工作。

于 2013-02-15T13:53:14.433 回答