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リンクを下記に示します。


