移动到最后选定的行,不突出显示最近单击的行
本文关键字:显示 最近 单击 移动 最后 | 更新日期: 2023-09-27 17:54:10
我有DataGrid和添加的事件如下,执行一些计算验证,如果验证是成功的,那么什么也不做。但是如果验证失败,那么突出显示的行应该仍然是最后选择的行,而不是新单击的行:-
public void dataGridTable_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (dataGrid.SelectedIndex == lastSelectedIndex)
{
return;
}
/*
Validate method will return true if row validation is fine else false.
*/
if(!validate())
{
// Revert to last selected index.
dataGrid.SelectedIndex = lastSelectedIndex;
}
}
dataGrid.SelectedIndex = lastSelectedIndex;
这段代码将使选定的索引作为最后选择的索引(在c#代码中,我在调试模式下检查它),但在WPF DataGrid中仍然突出显示新单击的行。
谢谢
可以使用DataGrid清除选定的单元格。SelectedCells财产。
Just do
this.SelectedCells.Clear();
清除当前选择。
如果你想在SelectedIndex的当前行中选择单元格你可以执行
this.SelectAllCells();
DataGridCellInfo[] cells = this.SelectedCells.Where(x => this.Items.IndexOf(x.Item) == this.SelectedIndex).ToArray();
this.SelectedCells.Clear();
foreach (DataGridCellInfo cell in cells)
{
this.SelectedCells.Add(cell);
}
其中this
为DataGrid的实例