方法 : ビュー内のデータを並べ替える
更新 : 2007 年 11 月
この例では、ビュー内のデータを並べ替える方法を示します。
使用例
簡単な ListBox と Button を作成する例を次に示します。
<Window x:Class="ListBoxSort_snip.Window1"
xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
Title="ListBoxSort_snip" Height="300" Width="300">
<DockPanel>
<ListBox Name="myListBox" DockPanel.Dock="Top">
<ListBoxItem>my</ListBoxItem>
<!--Or you can set the content this way:-->
<!--<ListBoxItem Content="my"/>-->
<ListBoxItem>1</ListBoxItem>
<ListBoxItem>Sort</ListBoxItem>
<ListBoxItem>3</ListBoxItem>
<ListBoxItem>ListBox</ListBoxItem>
<ListBoxItem>2</ListBoxItem>
</ListBox>
<Button Click="OnClick" Width="30" Height="20" DockPanel.Dock="Top">Sort</Button>
</DockPanel>
</Window>
ボタンの Click イベント ハンドラには、ListBox 内の項目を降順に並べ替えるロジックが含まれています。この方法が可能なのは、こうして ListBox に項目を追加すると ListBox の ItemCollection に項目が追加され、ItemCollection は CollectionView クラスから派生しているためです。ItemsSource プロパティを使用してコレクションに ListBox をバインドしている場合も、同じ手法を使用して並べ替えることができます。
private void OnClick(object sender, RoutedEventArgs e)
{
myListBox.Items.SortDescriptions.Add(
new SortDescription("Content", ListSortDirection.Descending));
}
ビュー オブジェクトに対する参照がある限り、同じ手法を使用して、他のコレクション ビューのコンテンツも並べ替えることができます。ビューを取得する方法の例については、「方法 : データ コレクションの既定のビューを取得する」を参照してください。別の例については、「方法 : ヘッダーがクリックされたときに GridView 列を並べ替える」を参照してください。ビューの詳細については、「データ バインディングの概要」の「コレクションへのバインド」を参照してください。
並べ替えロジックに Extensible Application Markup Language (XAML) を適用する方法の例については、「方法 : XAML でビューを使用してデータの並べ替えおよびグループ化を行う」を参照してください。
参照
処理手順
方法 : ヘッダーがクリックされたときに GridView 列を並べ替える