方法: ビュー内のデータを並べ替える
この例では、ビュー内のデータを並べ替える方法について説明します。
例
次の例では、単純な ListBox と Buttonを作成します。
<Window x:Class="ListBoxSort_snip.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://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 に追加され、ItemCollectionCollectionView クラスから派生するためです。 ItemsSource プロパティを使用して ListBox をコレクションにバインドする場合は、同じ手法を使用して並べ替えることができます。
private void OnClick(object sender, RoutedEventArgs e)
{
myListBox.Items.SortDescriptions.Add(
new SortDescription("Content", ListSortDirection.Descending));
}
Private Sub OnClick(ByVal sender As Object, ByVal e As RoutedEventArgs)
myListBox.Items.SortDescriptions.Add(New SortDescription("Content", ListSortDirection.Descending))
End Sub
ビュー オブジェクトへの参照がある限り、同じ手法を使用して他のコレクション ビューのコンテンツを並べ替えることができます。 ビューを取得する方法の例については、「データ コレクションの既定のビューを取得する」を参照してください。 別の例については、「ヘッダーがクリックされたときに GridView 列を並べ替える」参照してください。 ビューの詳細については、「データ バインディングの概要のコレクションへのバインド」を参照してください。
拡張アプリケーション マークアップ言語 (XAML) で並べ替えロジックを適用する方法の例については、「XAMLのビューを使用したデータの並べ替えとグループ化」
関連項目
- CustomSort
- ヘッダーがクリックされたときに GridView 列を並べ替える
- データ バインディングの概要
- ビュー でデータをフィルターする
- の使い方に関するトピック
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET Desktop feedback