CopyingRowClipboardContent

CopyingRowClipboardContent

我正在使用WPF DataGrid显示名称-值对。 SelectionUnit设置为FullRow是因为它看起来不错,但是,当用户选择一行并按Ctrl + C时,他确实要复制值文本,而不是复制名称和值的默认行为。当寻找解决方案时,我发现了CopyingRowClipboardContent事件,但是the MSDN page没有有关如何使用它的信息。还是我应该自己捕获PreviewKeyDown

最佳答案

您可以使用CopyingRowClipboardContentDataGridRowClipboardEventArgs事件处理程序中修改复制的数据。

反编译的源代码

public class DataGridRowClipboardEventArgs
{
    /// <summary>
    /// This list should be used to modify, add or remove a cell
    /// content before it gets stored into the clipboard.
    /// </summary>
    public List<DataGridClipboardCellContent> ClipboardRowContent
    {
       ...


因此,例如,如果您有两列,而只想要第一列,则可以像这样删除第二列:

private void grid_CopyingRowClipboardContent(
    object sender, DataGridRowClipboardEventArgs e)
{
    e.ClipboardRowContent.RemoveAt(1);
}

10-05 20:48