<DataGridTextColumn Header="S.No" Binding="{Binding SerialNumberId}"
IsReadOnly="True">
<DataGridTextColumn.CellStyle>
<Style TargetType="DataGridCell" >
<Setter Property="ContextMenu">
<Setter.Value>
<ContextMenu>
<MenuItem Command="Copy"></MenuItem>
</ContextMenu>
</Setter.Value>
</Setter>
</Style>
</DataGridTextColumn.CellStyle>
</DataGridTextColumn>
我想在此特定列的上下文菜单中添加复制选项&#34; S.No&#34;数据网格。但整行的内容被复制而不是网格中只有一个单元格。如何只复制应用了上下文的一个单元格而不是整行?
答案 0 :(得分:0)
为您的命令使用CommandParamter,如下所示:
<paper-dialog>
<h2>Header</h2>
<paper-dialog-scrollable>
Lorem ipsum...
</paper-dialog-scrollable>
<div class="buttons">
<paper-button dialog-dismiss>Cancel</paper-button>
<paper-button dialog-confirm>Accept</paper-button>
</div>
</paper-dialog>
在代码中更改命令参数,然后就可以使用它了。
答案 1 :(得分:0)
您可以在DataGrid上添加一个CommandBinding以绑定到一个函数:
<DataGrid x:Name="dataGrid1" AutoGenerateColumns="False">
<DataGrid.CommandBindings>
<CommandBinding Command="ApplicationCommands.Copy" Executed="DatagridExecuted" />
</DataGrid.CommandBindings>
<DataGrid.Columns>
...
</DataGrid.Columns>
</DataGrid>
在该功能中,您可以找到事件的来源,
获取与行对应的DataContext,
并从DataContext获取可以放入剪贴板的确切属性
private void DatagridExecuted(object sender, ExecutedRoutedEventArgs e)
{
DataGridCell cell = e.OriginalSource as DataGridCell;
if (cell != null)
{
Product product = cell.DataContext as Product;
if (product != null)
{
Clipboard.SetText(product.SerialNumberId);
}
}
}