[WPF/Silverlight] データをクリップボードにコピーする方法を設定する

スポンサーリンク

DataGridに表示されているデータはクリップボードにコピーすることが可能です。

クリップボードにコピーするには、ClipBoardCopyModeプロパティClipBoardCopyMode列挙体の値を設定します。

 

ClipBoardCopyMode列挙体 メンバ名説明 None クリップボードへのコピーを許可しない ExcludeHeader 選択したデータをクリップボードにコピーする。列ヘッダーは含まない。 IncludeHeader 選択したデータをクリップボードにコピーする。列ヘッダーも含む。

下記は、選択されたデータをクリップボードにコピーする例です。

ラジオボタン「コピーを許可しない」「列ヘッダーを含めずにコピーする」「列ヘッダーも含めてコピーする」の選択状態に合わせてコピーモードを変更します。

データをクリップボードにコピーする例

 

XAMLの例

<GroupBox Header="クリップボードへのコピー方法">
    <Grid>
        <RadioButton Content="コピーを許可しない" Name="rdoNone" />
        <RadioButton Content="列ヘッダーを含めずにコピーする" Name="rdoExcludeHeader" />
        <RadioButton Content="列ヘッダーも含めてコピーする" Name="rdoIncludeHeader" />
    </Grid>
</GroupBox>
<DataGrid ClipboardCopyMode="None">
 :省略
</DataGrid>

VBの例

' クリップボードへのコピー方法変更時の処理
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

C#の例

// クリップボードへのコピー方法変更時の処理
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;
}
タイトルとURLをコピーしました