我确实有一个基于定时器的DataGrid.ItemsSource更新。在视图中,我订阅了一个名为ViewModel_ItemsSourceChanged的事件。
在这个更新之后,我不能关注网格。
private void ViewModel_ItemsSourceChanged(object sender, ItemsSourceChangedEventArgs e)
{
if (e.Index > 0)
{
MainDataGrid.SelectedIndex = e.Index;
MainDataGrid.SelectedItem = MainDataGrid.Items[e.Index];
}
// pretty fine here
var dataGridRow = (DataGridRow)MainDataGrid.ItemContainerGenerator.ContainerFromItem(MainDataGrid.SelectedItem);
if (dataGridRow != null)
{
MainDataGrid.Focus();
dataGridRow.Focus();
dataGridRow.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));
}
}我尝试了许多答案,窥探,FocusManager,Keyboard.Focus(MainDataGrid)等,但对我来说都不起作用。
您有什么想法可以将焦点放在MainDataGrid/SelectedItems行上吗?
发布于 2021-09-02 06:21:02
原因是在我的代码执行之后,应用程序中的某些东西偷走了焦点。
我用一个定时器解决了这个问题,这个定时器把焦点放回了DataGrid上。
https://stackoverflow.com/questions/69016651
复制相似问题