我有DataGrid
。但我希望在CopyingRowClipboardContent
事件中获得专注的单元格值。但由于e.ClipboardRowContent
,SelectionUnit
会返回所有选定的单元格值。我不能改变datagrid的选择单位。为了解决这个问题,我需要获得有针对性的细胞柱数。然后,我将从clipboarcContent
中删除所有列值。
如何在CopyingRowClipboardContent
事件中获得专注细胞?
答案 0 :(得分:15)
改进版Farhad的回答
private void DataGrid_CopyingRowClipboardContent(object sender, DataGridRowClipboardEventArgs e)
{
var currentCell = e.ClipboardRowContent[ dataGrid.CurrentCell.Column.DisplayIndex];
e.ClipboardRowContent.Clear();
e.ClipboardRowContent.Add( currentCell );
}
答案 1 :(得分:4)
您还可以使用以下代码来控制剪贴板内容。
Clipboard.SetText("some value");
答案 2 :(得分:1)
我发现这个解决方案适用于所有DataGrids;即使是隐藏列的那些。
// Clipboard Row content only includes entries for visible cells
// Figure out the actual column we are looking for (taking into account hidden columns)
int columnIndex = dataGrid.CurrentCell.Column.DisplayIndex;
var column = dataGrid.Columns[columnIndex];
// Find the associated column we're interested in from the clipboard row content
var cellContent = clipboardRowContent.Where(item => item.Column == column).First();
clipboardRowContent.Clear();
clipboardRowContent.Add(cellContent);