09.非スクロールの列数を設定する
非スクロールの列数を設定するにはFrozenColumnCountプロパティを使用します。
FrozenColumnCountプロパティには固定する列数を設定します。
下記は非スクロールの列数を設定する例です。
先頭から2列を非スクロール列に設定しています。水平スクロールバーは非スクロール列以降に表示されます。
<DataGrid FrozenColumnCount="2"> :省略 </DataGrid>
'★★★非スクロールの列数を2に設定する★★★ CustomerDataGrid.FrozenColumnCount = 2
// ★★★非スクロールの列数を2に設定する★★★ customerDataGrid.FrozenColumnCount = 2;
非スクロールの列数を設定するにはFrozenColumnColumnプロパティを使用する。
10.データの選択方法を設定する
DataGridに表示されたデータはレコード単位、セル単位で選択することができます。
選択方法は細かく設定することができ、レコード単位での選択方法はSelectionModeプロパティにDataGridSelectionMode列挙体の値を設定し、セル単位での選択方法はSelectionUnitプロパティにDataGridSelectionUnit列挙体の値を設定します。
メンバー名 | 説明 |
Single | 単一行を選択する |
SelectionMode | 複数行を選択する |
メンバー名 | 説明 |
Cell | セルのみを選択する |
FullRow | 行全体のみを選択する |
CellOrRowHeader | セルと行を選択する |
下記はデータの選択方法を設定する例です。
各ラジオボタンの設定状況に合わせて、データの選択方法を変更します。
<GroupBox Header="レコードの選択方法"> <Grid> <RadioButton Content="単一行" Name="rdoSingle" /> <RadioButton Content="複数行" Name="rdoExtended" /> </Grid> </GroupBox> <GroupBox Header="セルの選択方法"> <Grid> <RadioButton Content="セルのみ" Name="rdoCell" /> <RadioButton Content="行のみ" Name="rdoFullRow" /> <RadioButton Content="セルと行の両方" Name="rdoCellOrFullRow" /> </Grid> </GroupBox> <DataGrid SelectionMode="Single" SelectionUnit="FullRow"> :省略 </DataGrid>
' レコードの選択方法を設定する Private Sub rdoSelectionMode_Checked(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles rdoExtended.Checked, rdoSingle.Checked If rdoSingle.IsChecked = True Then '★★★単一行のみを選択できるようにする★★★ CustomerDataGrid.SelectionMode = DataGridSelectionMode.Single Else '★★★複数行を選択できるようにする★★★ CustomerDataGrid.SelectionMode = DataGridSelectionMode.Extended End If End Sub ' セルの選択方法を設定する Private Sub rdoSelectionUnit_Checked(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles rdoCellOrFullRow.Checked, rdoFullRow.Checked, rdoCell.Checked If rdoCell.IsChecked = True Then '★★★セルのみを選択できるようにする★★★ CustomerDataGrid.SelectionUnit = DataGridSelectionUnit.Cell ElseIf rdoFullRow.IsChecked = True Then '★★★行全体のみを選択できるようにする★★★ CustomerDataGrid.SelectionUnit = DataGridSelectionUnit.FullRow Else '★★★セルと行を選択できるようにする★★★ CustomerDataGrid.SelectionUnit = DataGridSelectionUnit.CellOrRowHeader End If End Sub
// レコードの選択方法を設定する private void rdoSelectionMode_Checked(object sender, RoutedEventArgs e) { if (rdoSingle.IsChecked == true) { // ★★★単一行のみを選択できるようにする★★★ customerDataGrid.SelectionMode = DataGridSelectionMode.Single; } else { // ★★★複数行を選択できるようにする★★★ customerDataGrid.SelectionMode = DataGridSelectionMode.Extended; } } // セルの選択方法を設定する private void rdoSelectionUnit_Checked(object sender, RoutedEventArgs e) { if (rdoCell.IsChecked == true) { // ★★★セルのみを選択できるようにする★★★ customerDataGrid.SelectionUnit = DataGridSelectionUnit.Cell; } else if (rdoFullRow.IsChecked == true) { // ★★★行全体のみを選択できるようにする★★★ customerDataGrid.SelectionUnit = DataGridSelectionUnit.FullRow; } else { // ★★★セルと行を選択できるようにする★★★ customerDataGrid.SelectionUnit = DataGridSelectionUnit.CellOrRowHeader; } }
データの選択方法を設定するには、SelectionModeプロパティやSelectionUnitプロパティを使用する。
まとめ
DataGridコントロールには非常に多くの機能が備わっています。
残念ながらすべての機能を紹介することができませんが、後編でも使用頻度の高そうなTipsを取り上げていきますのでお楽しみに。
最後にDataGridのMSDNリンクを下記に示します。