0

リストボックスの内容を並べ替えるにはどうすればよいですか? 並べ替えはビジネス ロジックに影響を与えないため、これを UI レイヤーのみに保持する方が理にかなっているように思えます。私は正確に何をすべきかを理解することはできません。

4

1 に答える 1

8

そのために a を使用する必要CollectionViewがあります。

private void Button1_Click(object sender, RoutedEventArgs e)
{
    ICollectionView view = CollectionViewSource.GetDefaultView(SomeCollection);
    view.SortDescriptions.Add
    (
        new SortDescription("Name", ListSortDirection.Descending)
    );
}

CollectionViewSourceXAML で並べ替えを行うには、クラスを使用できます。MSDN の例:

<src:Places x:Key="places"/>

<CollectionViewSource Source="{StaticResource places}" x:Key="cvs">
  <CollectionViewSource.SortDescriptions>
    <scm:SortDescription PropertyName="CityName"/>
  </CollectionViewSource.SortDescriptions>
  <CollectionViewSource.GroupDescriptions>
    <dat:PropertyGroupDescription PropertyName="State"/>
  </CollectionViewSource.GroupDescriptions>
</CollectionViewSource>

<ListBox ItemsSource="{Binding Source={StaticResource cvs}}"
         DisplayMemberPath="CityName" Name="lb">
于 2011-04-25T18:01:45.690 に答える