对于WPF,数据网格我试图在Ctrl+C
之后将自定义文本数据复制到剪贴板
不同的尝试使用覆盖
OnCopyingRowClipboardContent(DataGridRowClipboardEventArgs args)
或CopingRowClipboardContent event
,没有帮助。
剪贴板变为空或标准行文本,但不是我想放在那里。 例如
protected override void OnCopyingRowClipboardContent(DataGridRowClipboardEventArgs args)
{
Clipboard.SetText("Abc-hello");
bool b1 = Clipboard.ContainsText();
string s1 = Clipboard.GetText();
}
s1
获取所需的文本,但在退出此方法后,剪贴板变空。
知道是否可以解决这个问题?
答案 0 :(得分:15)
正确的方法是在XAML网格上添加此属性
ClipboardCopyMode="ExcludeHeader"
并为您要复制的每个属性添加此XAML
<DataGridTemplateColumn ClipboardContentBinding="{Binding XXXXXX} .....
其他兼性步骤是实现dataGrid事件CopyingRowClipboardContent来修改clipoard数据
答案 1 :(得分:4)
您需要设置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"));
}