启用带有自定义列的 DataGrid 复制

pri*_*eta 4 wpf datatemplate wpfdatagrid

我有一个 DataGrid,其中有带有列模板的自定义列,用于插入特殊的工具提示。执行此操作时,如何将此数据复制到剪贴板?

我的 DataGrid 的 XAML 代码:

<DataGrid x:Name="CapabilityGrid" IsReadOnly="True" AutoGenerateColumns="False">
    <DataGrid.Columns>
        <DataGridTemplateColumn Header="Variable">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding Name}" ToolTip="{Binding Name, Converter={StaticResource tooltipConverter}}" />
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
        <DataGridTemplateColumn Header="Value">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding Value}"></TextBlock>
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
    </DataGrid.Columns>
</DataGrid>
Run Code Online (Sandbox Code Playgroud)

dko*_*ozl 7

您可以使用ClipboardContentBinding

获取或设置在获取或设置剪贴板的单元格内容时要使用的绑定对象。

所以在 XAML 中你可以这样做

<DataGridTemplateColumn Header="Value" ClipboardContentBinding="{Binding Value}">
Run Code Online (Sandbox Code Playgroud)