首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ItemsSourceUpdated之后的Focus DataGridRow

ItemsSourceUpdated之后的Focus DataGridRow
EN

Stack Overflow用户
提问于 2021-09-01 15:26:14
回答 1查看 17关注 0票数 0

我确实有一个基于定时器的DataGrid.ItemsSource更新。在视图中,我订阅了一个名为ViewModel_ItemsSourceChanged的事件。

在这个更新之后,我不能关注网格。

代码语言:javascript
复制
    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));
        }
    }

我尝试了许多答案,窥探,FocusManagerKeyboard.Focus(MainDataGrid)等,但对我来说都不起作用。

您有什么想法可以将焦点放在MainDataGrid/SelectedItems行上吗?

EN

回答 1

Stack Overflow用户

发布于 2021-09-02 06:21:02

原因是在我的代码执行之后,应用程序中的某些东西偷走了焦点。

我用一个定时器解决了这个问题,这个定时器把焦点放回了DataGrid上。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69016651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档