当键盘焦点返回到DataGrid时(例如,通过按Tab键),其焦点单元格(DataGrid.CurrentCell)更改,现在它不在DataGrid.SelectedCells中。
好吧,我们可以使用DataGrid.GotKeyboardFocus事件中的以下代码来还原DataGrid.CurrentCell:
if (MyDataGrid.SelectedCells.Count > 0)
MyDataGrid.CurrentCell = MyDataGrid.SelectedCells.First();
更复杂的情况如下。两个选项卡,每个选项卡包含一个DataGrid:
现在切换到“标签2”,然后再切换回“标签1”:
是的,我们仍然可以如上所示在TabControl.SelectionChanged事件中还原CurrentCell,但是我们也必须还原垂直滚动位置。此外,用户每次切换标签时,都会短暂地看到上部单元格周围的边框,并且内容会发生变化。 是否存在用于保留(或恢复)集中单元格的更优雅的解决方案?