Basic Library for UWP
コントロールをソートする
Basic Library for UWP > CollectionView for UWP > C1CollectionView の使い方 > コントロールをソートする

他のプラットフォームで CollectionView 実装を使用する場合と同様に、C1CollectionView を使用してコレクション内の項目をソートできます。C1CollectionView をソートしても、基底のデータセットは影響を受けません。

たとえば、SortDescription オブジェクトを渡す SortDescriptions プロパティを使用して、項目をソートできます。

Visual Basic コードの書き方

Visual Basic
コードのコピー
Dim list = New System.Collections.ObjectModel.ObservableCollection(Of Customer)()
' リストから C1CollectionView を作成します
Dim _view As New C1.Xaml.C1CollectionView(list)
' 顧客を国に基づいてソートします
_view.SortDescriptions.Add(New C1.Xaml.SortDescription("Country", C1.Xaml.ListSortDirection.Ascending))

C# コードの書き方

C#
コードのコピー
var list = new System.Collections.ObjectModel.ObservableCollection<Customer>();
// リストから C1CollectionView を作成します
C1.Xaml.C1CollectionView _view = new C1.Xaml.C1CollectionView(list);
// 顧客を国に基づいてソートします
_view.SortDescriptions.Add(new C1.Xaml.SortDescription("Country", C1.Xaml.ListSortDirection.Ascending));

ここで、"Country" はソートの基準にするプロパティの名前です。ListSortDirection パラメータに基づいて昇順(A-Z)または降順(Z-A)でソートできます。

複数のプロパティまたは列でソートする方法

SortDescriptions を追加するだけで、複数のプロパティに基づくソートが可能です。複数のプロパティに基づいてソートする場合は、DeferRefresh メソッドを使用して各ソート後の自動リフレッシュを遅延させ、各ソートが一度だけ適用されるようにする必要があります。

Visual Basic コードの書き方

Visual Basic
コードのコピー
' リフレッシュが一度ですむように DeferRefresh を使用して複数のプロパティをソートします
Using _view.DeferRefresh()
   _view.SortDescriptions.Clear()
   _view.SortDescriptions.Add(New C1.Xaml.SortDescription("Country", C1.Xaml.ListSortDirection.Ascending))
   _view.SortDescriptions.Add(New C1.Xaml.SortDescription("Name", C1.Xaml.ListSortDirection.Ascending))
End Using

C#コードの書き方

C#
コードのコピー
// リフレッシュが一度ですむように DeferRefresh を使用して複数のプロパティをソートします
using (_view.DeferRefresh())
{
    _view.SortDescriptions.Clear();
    _view.SortDescriptions.Add(new C1.Xaml.SortDescription("Country", C1.Xaml.ListSortDirection.Ascending));
    _view.SortDescriptions.Add(new C1.Xaml.SortDescription("Name", C1.Xaml.ListSortDirection.Ascending));
}

メモ: コレクションが INotifyCollectionChanged を実装している場合は、ソートの設定後であっても、データに加えられた変更がすべてソートに適用されます。

パフォーマンスを向上できる高度なソートについては、CustomSort プロパティを参照してください。

関連トピック