方法: データ コレクションの既定のビューを取得する

ビューでは、並べ替え、フィルター処理、グループ化の条件に応じて、同じデータ コレクションを異なる方法で表示できます。 すべてのコレクションには既定の共有ビューが 1 つあり、バインディングでソースとしてコレクションが指定されているときに、実際のバインディング ソースとして使用されます。 この例では、コレクションの既定のビューを取得する方法を示します。

ビューを作成するには、コレクションへのオブジェクト参照が必要です。 このデータ オブジェクトは、独自のコードビハインド オブジェクトの参照、データ コンテキストの取得、データ ソースのプロパティの取得、またはバインディングのプロパティの取得によって、取得することができます。 この例では、データ オブジェクトの DataContext を取得し、それを使用してこのコレクションの既定のコレクション ビューを直接取得する方法を示します。

myCollectionView = (CollectionView)
    CollectionViewSource.GetDefaultView(rootElem.DataContext);
myCollectionView = CType(CollectionViewSource.GetDefaultView(rootElem.DataContext), CollectionView)

この例では、ルート要素は StackPanel です。 DataContextmyDataSource に設定されています。これは、Order オブジェクトの ObservableCollection<T> であるデータ プロバイダーを参照します。

<StackPanel.DataContext>
  <Binding Source="{StaticResource myDataSource}"/>
</StackPanel.DataContext>

または、CollectionViewSource クラスを使用して、独自のコレクション ビューをインスタンス化し、それにバインドすることもできます。 このコレクション ビューは、それに直接バインドするコントロールによってのみ共有されます。 例については、「データ バインディングの概要」の「ビューの作成方法」セクションを参照してください。

コレクション ビューによって提供される機能の例については、「ビュー内のデータの並べ替え」、「ビュー内のデータをフィルター処理する」、および「データ CollectionView のオブジェクト間を移動する」を参照してください。

関連項目