我有一个DataGrid
. 但我想在CopyingRowClipboardContent
事件中获得集中的单元格值。但e.ClipboardRowContent
由于SelectionUnit
. 而且我不能更改数据网格的选择单元。为了解决这个问题,我需要获得重点单元格列号。然后我将从中删除所有列值clipboarcContent
。我怎样才能在CopyingRowClipboardContent
事件中获得焦点单元?
问问题
16204 次
4 回答
19
法哈德答案的改进版本
private void DataGrid_CopyingRowClipboardContent(object sender, DataGridRowClipboardEventArgs e)
{
var currentCell = e.ClipboardRowContent[ dataGrid.CurrentCell.Column.DisplayIndex];
e.ClipboardRowContent.Clear();
e.ClipboardRowContent.Add( currentCell );
}
于 2013-08-22T11:57:00.180 回答
5
您还可以使用以下代码来控制剪贴板内容。
Clipboard.SetText("some value");
于 2012-09-20T12:25:52.703 回答
1
我找到了解决方案。首先,我需要重点单元格的列号。我已经设法用这段代码得到它:
DataGridResults.CurrentCell.Column.DisplayIndex;
然后CopyingRowClipboardContent
万一,我必须删除所有其他列值。
private void DataGridResults_CopyingRowClipboardContent(object sender, DataGridRowClipboardEventArgs e)
{
int y = 0;
for (int i = 0; i < e.EndColumnDisplayIndex; i++)
{
if (i != DataGridResults.CurrentCell.Column.DisplayIndex)
{
e.ClipboardRowContent.RemoveAt(i - y);
y++;
}
}
}
于 2012-09-20T11:57:53.973 回答
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);
于 2017-03-24T16:44:35.877 回答