-1

私たちはWPFアプリケーションを持っています.1つのフォームの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);

このようなSORT関数、

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 に答える