首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WPF DataGrid,在Ctrl+C,OnCopyingRowClipboardContent之后复制到剪贴板

WPF DataGrid,在Ctrl+C,OnCopyingRowClipboardContent之后复制到剪贴板
EN

Stack Overflow用户
提问于 2012-12-14 18:30:17
回答 2查看 15.5K关注 0票数 15

对于WPF,数据网格我正在尝试复制到剪贴板上我的自定义文本数据,在Ctrl+C各种尝试使用override OnCopyingRowClipboardContent(DataGridRowClipboardEventArgs args)CopingRowClipboardContent event后,没有帮助。

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

代码语言:javascript
运行
复制
protected override void OnCopyingRowClipboardContent(DataGridRowClipboardEventArgs args)
{
    Clipboard.SetText("Abc-hello");
    bool b1 = Clipboard.ContainsText();
    string s1 = Clipboard.GetText();
}

s1可以获取所需的文本,但在退出此方法后,剪贴板将变为空。有没有办法解决这个问题?

EN

回答 2

Stack Overflow用户

发布于 2014-05-23 21:25:05

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

代码语言:javascript
运行
复制
ClipboardCopyMode="ExcludeHeader"

对于要复制的每个属性,添加以下XAML

代码语言:javascript
运行
复制
 <DataGridTemplateColumn  ClipboardContentBinding="{Binding XXXXXX} ..... 

另一个临时步骤是实现dataGrid事件CopyingRowClipboardContent来修改剪贴板数据

票数 16
EN

Stack Overflow用户

发布于 2012-12-14 18:47:33

您需要设置DataGridRowClipboardEventArgs的ClipboardRowContent属性

代码语言:javascript
运行
复制
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"));
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13876874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档