15

对于 WPF,数据网格我试图将我的自定义文本数据复制到剪贴板,在Ctrl+C Diverse 尝试使用覆盖 OnCopyingRowClipboardContent(DataGridRowClipboardEventArgs args)CopingRowClipboardContent event之后,没有帮助。

剪贴板中的任何一个都是空的或标准的行文本,但不是我想放在那里的。例如

protected override void OnCopyingRowClipboardContent(DataGridRowClipboardEventArgs args)
{
    Clipboard.SetText("Abc-hello");
    bool b1 = Clipboard.ContainsText();
    string s1 = Clipboard.GetText();
}

s1获取所需的文本,但在退出此方法后剪贴板变空。知道是否可以解决这个问题吗?

4

2 回答 2

16

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

ClipboardCopyMode="ExcludeHeader"

并为您要复制的每个属性添加此 XAML

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

其他兼性步骤是实现 dataGrid 事件 CopyingRowClipboardContent 来修改剪贴板数据

于 2014-05-23T13:25:04.793 回答
3

您需要设置 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"));
}
于 2012-12-14T10:47:32.550 回答