WPF DataGrid,在Ctrl+;C、 OnCopyingRowClipboardContent

WPF DataGrid,在Ctrl+;C、 OnCopyingRowClipboardContent,wpf,xaml,datagrid,clipboard,Wpf,Xaml,Datagrid,Clipboard,对于WPF,我正在尝试在Ctrl+C 使用覆盖的各种尝试 OnCopyingRowClipboardContent(DataGridRowClipboardEventArgs)或CopingRowClipboardContent事件,无需帮助 剪贴板要么为空,要么为标准行文本,但不是我想放在那里的内容。 比如说 protected override void OnCopyingRowClipboardContent(DataGridRowClipboardEventArgs args) {

对于WPF,我正在尝试在
Ctrl+C
使用覆盖的各种尝试
OnCopyingRowClipboardContent(DataGridRowClipboardEventArgs)
CopingRowClipboardContent事件
,无需帮助

剪贴板要么为空,要么为标准行文本,但不是我想放在那里的内容。 比如说

protected override void OnCopyingRowClipboardContent(DataGridRowClipboardEventArgs args)
{
    Clipboard.SetText("Abc-hello");
    bool b1 = Clipboard.ContainsText();
    string s1 = Clipboard.GetText();
}
s1
获取所需文本,但退出此方法后,剪贴板将变为空。
您知道是否可以解决这个问题吗?

您需要设置DataGridRowClipboardEventArgs的ClipboardRowContent属性

static void dataGrid_CopyingRowClipboardContent(object sender, DataGridRowClipboardEventArgs e)
{
    e.ClipboardRowContent.Clear();
    e.ClipboardRowContent.Add(new DataGridClipboardCellContent(e.Item, (sender as DataGrid).Columns[0], "Abc-hello"));
}

正确的方法是在XAML网格上添加此属性

ClipboardCopyMode="ExcludeHeader"
对于要复制的每个属性,添加此XAML

 <DataGridTemplateColumn  ClipboardContentBinding="{Binding XXXXXX} .....