05.列の順序を変更できるかどうかを設定する
列の順序の変更を許可するにはCanUserReorderColumnsプロパティにTrueを設定します。
列の順序の変更が許可されているときは、任意の列をドラッグして入れ替えを行うことが可能です。
下記は、列の順序を変更できるかどうかを設定する例です。
[列の順序の変更を許可]にチェックが付けられているときは、ドラッグして列を入れ替えることが可能です。
<DataGrid CanUserReorderColumns="True"> :省略 </DataGrid>
' [列の順序の変更を許可]チェッック時の処理
Private Sub chkReorderColumns_Checked(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles chkReorderColumns.Checked
'★★★列の順序の変更を許可する★★★
CustomerDataGrid.CanUserReorderColumns = True
End Sub
' [列の順序の変更を許可]未チェッック時の処理
Private Sub chkReorderColumns_Unchecked(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles chkReorderColumns.Unchecked
'★★★列の順序の変更を許可しない★★★
CustomerDataGrid.CanUserReorderColumns = False
End Sub
// [列の順序の変更を許可]チェッック時の処理
private void chkReorderColumns_Checked(object sender, RoutedEventArgs e)
{
// ★★★列の順序の変更を許可する★★★
customerDataGrid.CanUserReorderColumns = true;
}
// [列の順序の変更を許可]未チェッック時の処理
private void chkReorderColumns_Unchecked(object sender, RoutedEventArgs e)
{
// ★★★列の順序の変更を許可しない★★★
customerDataGrid.CanUserReorderColumns = false;
}
列の順序の変更を許可するにはCanUserReorderColumnsプロパティにTrueを設定する。
06.データをクリップボードにコピーする方法を設定する
DataGridに表示されているデータはクリップボードにコピーすることが可能です。
クリップボードにコピーするには、ClipBoardCopyModeプロパティにClipBoardCopyMode列挙体の値を設定します。
| メンバー名 | 説明 |
| None | クリップボードへのコピーを許可しない。 |
| ExcludeHeader | 選択したデータをクリップボードにコピーする。列ヘッダーは含まない。 |
| IncludeHeader | 選択したデータをクリップボードにコピーする。列ヘッダーも含む。 |
下記は、選択されたデータをクリップボードにコピーする例です。
ラジオボタン「コピーを許可しない」「列ヘッダーを含めずにコピーする」「列ヘッダーも含めてコピーする」の選択状態に合わせてコピーモードを変更します。
<GroupBox Header="クリップボードへのコピー方法">
<Grid>
<RadioButton Content="コピーを許可しない" Name="rdoNone" />
<RadioButton Content="列ヘッダーを含めずにコピーする" Name="rdoExcludeHeader" />
<RadioButton Content="列ヘッダーも含めてコピーする" Name="rdoIncludeHeader" />
</Grid>
</GroupBox>
<DataGrid ClipboardCopyMode="None">
:省略
</DataGrid>
' クリップボードへのコピー方法変更時の処理
Private Sub rdoCopy_Checked(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles rdoNone.Checked, rdoExcludeHeader.Checked, rdoIncludeHeader.Checked
If rdoNone.IsChecked Then
'★★★コピーを許可しない★★★
CustomerDataGrid.ClipboardCopyMode = DataGridClipboardCopyMode.None
ElseIf rdoExcludeHeader.IsChecked Then
'★★★ヘッダーを含めないでコピーする★★★
CustomerDataGrid.ClipboardCopyMode = DataGridClipboardCopyMode.ExcludeHeader
ElseIf rdoIncludeHeader.IsChecked Then
'★★★ヘッダーを含めてコピーする★★★
CustomerDataGrid.ClipboardCopyMode = DataGridClipboardCopyMode.IncludeHeader
End If
End Sub
// クリップボードへのコピー方法変更時の処理
private void rdoCopy_Checked(object sender, RoutedEventArgs e)
{
if ((bool)rdoNone.IsChecked)
{
// ★★★コピーを許可しない★★★
customerDataGrid.ClipboardCopyMode = DataGridClipboardCopyMode.None;
}
else if ((bool)rdoExcludeHeader.IsChecked)
{
// ★★★ヘッダーを含めないでコピーする★★★
customerDataGrid.ClipboardCopyMode = DataGridClipboardCopyMode.ExcludeHeader;
}
else if ((bool)rdoIncludeHeader.IsChecked)
{
// ★★★ヘッダーを含めてコピーする★★★
customerDataGrid.ClipboardCopyMode = DataGridClipboardCopyMode.IncludeHeader;
}
}
データをクリップボードにコピーできるようにするにはClipBoardCopyModeプロパティを使用する。


