多くの場合、 DataGridは、データをグループ化、並べ替え、およびフィルタリングすることにより、さまざまな方法でデータを表示するのに役立ちます。DataGridでデータをグループ化、並べ替え、およびフィルタリングするには、これらの関数をサポートするCollectionViewにデータをバインドします。その後、基になるデータソースデータに影響を与えることなく、 CollectionViewでデータを処理できます。コレクションビューでの変更は、 DataGridユーザーインターフェイス(UI)に反映されます。
CollectionViewクラスは、 IEnumerableインターフェイスを実装するデータソースのグループ化および並べ替え機能を提供し。CollectionViewSourceは、XAMLから設定できるCollectionViewクラスのプロパティを利用します。
この例では、Task
オブジェクトのコレクションがCollectionViewSourceにバインドされています。DataGridのItemsSourceとして使用されるCollectionViewSource。グループ化、並べ替え、フィルタリングはCollectionViewSourceで実行され、 DataGridUIに表示されます。
DataGridでアイテムをグループ化する
1.グループ化するプロパティを指定するPropertyGroupDescriptionを作成します。 プロパティは、XAMLまたはコードで指定できます。
- XAMLでは、PropertyName は、グループ化するプロパティの名前に設定されます。
- コードで、GroupByプロパティの名前をコンストラクターに渡します。
2.PropertyGroupDescriptionをCollectionViewSource.GroupDescriptions コレクションに追加します。
3.コレクションに追加された追加のインスタンスPropertyGroupDescriptionGroupDescriptionsにより、グループ化のレベルがさらに追加されます。
4.グループを削除するには、コレクションGroupDescriptionsからPropertyGroupDescription を削除します。
5.すべてのグループを削除するには、 Clear コレクションメソッドGroupDescriptionsを呼び出します。
アイテムがDataGridでグループ化されている場合、 GroupStyle を定義して、各グループの外観を指定できます。GroupStyleは、DataGridのコレクションに追加することで適用されます。複数のレベルのグループ化がある場合は、各グループレベルに異なるスタイルを適用できます。スタイルは、定義された順序で適用されます。たとえば、2つのスタイルを定義すると、最初のスタイルが最上位の行グループに適用されます。2番目のスタイルは、2番目以下のレベルのすべての行グループに適用されます。DataContext GroupStyle は、CollectionViewGroup グループによって表されます。