我希望点击此数据网格的结束行(在上图中)。单击此按钮时,我希望能够找到单击的行并将行号传递给另一个表单。
以下是我尝试过的一些尝试:
private void CellClicked(object sender, MouseButtonEventArgs e)
{
int cell = dgFake.Items.IndexOf(((DataRowView)dgFake.Items[5]).Row);
xamlAllocteAudits window = new xamlAllocteAudits
{
DataContext = cell
};
window.Show();
无论我在列中单击的位置,此尝试都保持为“-1”的值。
private void CellClicked(object sender, MouseButtonEventArgs e)
{
int cell = dgFake.Items.IndexOf(dgFake.SelectedIndex);
xamlAllocteAudits window = new xamlAllocteAudits
{
DataContext = cell
};
window.Show();
此尝试显示从“-1”开始的不同数字,并且每次单击列中的单元格时都会递增,但即使单击底部单元格,第一次单击也始终为“-1”,因此我假设这不是行号值。
答案 0 :(得分:0)
Ben查看code,它通过简单的父母导航技术告诉您检测单击的列,单元格和行的机制。
答案 1 :(得分:0)
类似的问题已被回答here看看。
答案 2 :(得分:0)
您可以使用SelectionChanged
事件来执行此操作:
private void dataGrid_SelectionChanged(object sender, EventArgs e)
{
foreach (var row in dataGrid.SelectedItems)
{
int index = dataGrid.Items.IndexOf(row);
}
}
如果您使用单行选择,那么您可以这样做:
private void dataGrid_SelectionChanged(object sender, EventArgs e)
{
int index = dataGrid.SelectedIndex;
}
如果您只是想要单元格数据,那么您可以这样做:
private void dataGrid_SelectionChanged(object sender, EventArgs e)
{
foreach (DataGridCellInfo cell in dataGrid.SelectedCells)
{
// do something with cell
}
}