1
にソートされていません。アイテムは、私が<code>ObservableCollection<string></code>を持って
public ObservableCollection<string> Collection { get; set; } = new ObservableCollection<string>
{
"AA",
"BB",
"CC",
"C",
"A",
"C",
"BBB",
"AAA",
"CCC"
};
ウィンドウでListBox
がこのコレクションに結合します。 Window Loadedイベントでは、並べ替えおよびグループ化ロジックをCollection
の基になるICollectionViewに割り当てています。
private void MainWindow_OnLoaded(object sender, RoutedEventArgs e)
{
ICollectionView defaultView = CollectionViewSource.GetDefaultView(this.Collection);
defaultView.GroupDescriptions.Add(new PropertyGroupDescription(null, new TestGroupConverter()));
defaultView.SortDescriptions.Add(new SortDescription("", ListSortDirection.Ascending));
defaultView.SortDescriptions.Add(new SortDescription("", ListSortDirection.Descending));
}
TestGroupConverter
その変換方式の文字列の長さを返します。
ので、ここでの結果です:
私はグループを降順でソートするその中の昇順と項目でソートすることが期待。しかし、グループ内のアイテムのSortDescription
は使用されていないように見えます。降順でソートされていません。
私は何が間違っているのか分かりません。
をソートする最初の
SortDescription
を変更することができ、文字列の最初の文字を取得します: 'collection.OrderBy(X> x.Substring(0,1))' –@ MaciejLos、私は理解していませんでした。 SortDescriptionは、文字列にDefault Comparerを使用します。 –
@EmperorAiman最初の 'SortDescription'を' new SortDescription( "Length"、ListSortDirection.Ascending) 'に変更しようとしました。 – dkozl