02.項目をグループ化する
DataGridの任意の項目をグループ化するには PagedCollectionViewクラスを使用します。
コンストラクタの引数にはドメインデータソースを渡します。その後、GroupDescriptionsプロパティのAddメソッドでグループ化する項目を追加し、DataGridのデータソースに、PagedCollectionViewのインスタンスを設定します。
下記は項目をグループ化する例です。Title列をグループ化し、同じ値ごとにグルーピングして表示します。
'★★★PagedCollectionView変数の宣言★★★
Dim globalPVC As PagedCollectionView
' ページロード時の処理
Private Sub Page_Loaded(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded
'ドメインデータソースをPagedCollectionViewに追加
globalPVC = New PagedCollectionView(CustomerDomainDataSource.Data)
'★★★Title列をグループ化する★★★
globalPVC.GroupDescriptions.Add(New PropertyGroupDescription("Title"))
'DataGridのデータソースにPagedCollectionViewを設定
CustomerDataGrid.ItemsSource = globalPVC
End Sub
// ★★★PagedCollectionView変数の宣言★★★
PagedCollectionView globalPVC;
// ページロード時の処理
private void Page_Loaded(object sender, RoutedEventArgs e)
{
globalPVC = new PagedCollectionView(customerDomainDataSource.Data);
// ★★★Title列をグループ化する★★★
globalPVC.GroupDescriptions.Add(new PropertyGroupDescription("Title"));
// DataGridのデータソースにPagedCollectionViewを設定
customerDataGrid.ItemsSource = globalPVC;
}
項目をグループ化するにはPagedCollectionViewクラスを使用する。
03.データを並び替えを禁止する
既定では、DataGridのヘッダーをクリックすることでデータの並べ替えを行うことが可能になっています。データの並べ替えを禁止したい場合は、CanUserSortColumnsプロパティにFalseを設定します。
下記は、データの並べ替えを禁止する例です。チェックボックス[並べ替えを許可]のチェック状態に合わせて、並べ替えの有効/無効を切り替えます。
<CheckBox Content="並べ替えを許可" Name="chkCanUserSortColumns"
Checked="chkCanUserSortColumns_Checked"
Unchecked="chkCanUserSortColumns_Unchecked" />
<sdk:DataGrid CanUserSortColumns="False">
:省略
</sdk:DataGrid>
' [並べ替えを許可]チェック時の処理
Private Sub chkCanUserSortColumns_Checked(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles chkCanUserSortColumns.Checked
'★★★並べ替えを有効にする★★★
CustomerDataGrid.CanUserSortColumns = True
End Sub
' [並べ替えを許可]チェックオフ時の処理
Private Sub chkCanUserSortColumns_Unchecked(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles chkCanUserSortColumns.Unchecked
'★★★並べ替えを無効にする★★★
CustomerDataGrid.CanUserSortColumns = False
End Sub
// [並べ替えを許可]チェック時の処理
private void chkCanUserSortColumns_Checked(object sender, RoutedEventArgs e)
{
// ★★★並べ替えを有効にする★★★
customerDataGrid.CanUserSortColumns = true;
}
// [並べ替えを許可]チェックオフ時の処理
private void chkCanUserSortColumns_Unchecked(object sender, RoutedEventArgs e)
{
// ★★★並べ替えを無効にする★★★
customerDataGrid.CanUserSortColumns = false;
}
データの並べ替えを禁止するにはCanUserSortColumnsプロパティにFalseを設定する。


