【问题标题】:WPF DataGrid, Copy to Clipboard after Ctrl+C,OnCopyingRowClipboardContentWPF DataGrid,Ctrl+C 后复制到剪贴板,OnCopyingRowClipboardContent
【发布时间】:2012-12-02 08:21:05
【问题描述】:

对于 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 获得所需的文本,但在退出此方法后剪贴板变空。 知道是否有人可以解决这个问题吗?

【问题讨论】:

    标签: wpf xaml datagrid clipboard


    【解决方案1】:

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

    ClipboardCopyMode="ExcludeHeader"
    

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

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

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

    【讨论】:

      【解决方案2】:

      您需要设置 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"));
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多