WPF DataGrid:在DataGrid丢失并获得焦点后如何恢复聚焦的单元格

时间:2019-04-15 11:44:31

标签: c# wpf datagrid focus wpfdatagrid

当键盘焦点返回到DataGrid时(例如,通过按Tab键),其焦点单元格(DataGrid.CurrentCell)更改,现在它不在DataGrid.SelectedCells中。

好吧,我们可以使用DataGrid.GotKeyboardFocus事件中的以下代码来还原DataGrid.CurrentCell:

if (MyDataGrid.SelectedCells.Count > 0)
    MyDataGrid.CurrentCell = MyDataGrid.SelectedCells.First();

更复杂的情况如下。两个选项卡,每个选项卡包含一个DataGrid:
Tab 1, scrolled down

现在切换到“标签2”,然后再切换回“标签1”:
Tab 1, after switching to Tab 2 and back

是的,我们仍然可以如上所示在TabControl.SelectionChanged事件中还原CurrentCell,但是我们也必须还原垂直滚动位置。此外,用户每次切换标签时,都会短暂地看到上部单元格周围的边框,并且内容会发生变化。 是否存在用于保留(或恢复)集中单元格的更优雅的解决方案?

0 个答案:

没有答案