【问题标题】:How to set focus on a row in grid in WPF如何在WPF网格中的一行上设置焦点
【发布时间】:2025-12-21 06:30:07
【问题描述】:

我有一个编辑窗口,弹出一个网格。 这个网格是 ComponentOne 制作的 C1FlexGrid。 (但我认为这可能是其他网格的类似问题..)

当我从主窗口打开该窗口时,我希望该网格中的第一行获得焦点并被选中。

最好在 xaml 中,但如果这在代码隐藏或继承 flexgrid 中是不可能的。

我知道如何设置要选择的行和获取焦点的网格,但该行没有获得焦点,因此我无法通过使用键盘上的向上和向下箭头移动来遍历网格中的行。

【问题讨论】:

    标签: wpf grid focus componentone c1flexgrid


    【解决方案1】:

    以编程方式在 WPF DataGrid 中选择一行,然后以编程方式将焦点放在该单元格上,这样您就可以使用键盘上的箭头键在 DataGrid 中导航,用于选择的部分代码是:

    int index = 1;
    dgUsers.SelectedItem = dgUsers.Items[index];
    dgUsers.ScrollIntoView(dgUsers.Items[index]);
    DataGrid dgrow =                                                                                                 (DataGrid)dgUsers.ItemContainerGenerator.ContainerFromItem(dgUsers.Items[index]);
    dgrow.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));
    

    【讨论】:

      最近更新 更多