c# - 键盘焦点到 DataGrid

标签 c# wpf datagrid keyboard focus

我有一个 WPF DataGrid,我想将焦点设置到第一个项目,以便用户可以在第一次打开对话框时使用键盘在项目列表中导航。用datagrid.Focus();我可以将焦点设置到 DataGrid,但这显然不是键盘焦点,因为当我按下向下箭头键时,我无法在 DataGrid 中导航。焦点跳转到文本框“描述”,但这不是我想要的(见图)。

enter image description here

如何以正确的方式将焦点和键盘焦点设置到 DataGrid?感谢您的帮助。

最佳答案

好的,我找到了解决方案。这对我有用

Keyboard.Focus (GetDataGridCell (dataGridFiles.SelectedCells[0]));

private System.Windows.Controls.DataGridCell GetDataGridCell (System.Windows.Controls.DataGridCellInfo cellInfo)
{
  var cellContent = cellInfo.Column.GetCellContent (cellInfo.Item);

  if (cellContent != null)
    return ((System.Windows.Controls.DataGridCell) cellContent.Parent);

  return (null);
}

现在,我获得了正确的焦点并且可以使用键盘进行导航。

关于c# - 键盘焦点到 DataGrid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20537073/

相关文章:

c# - 如何使用 IEditableObject 对象在 WPF DataGrid 中执行单击复选框选择

wpf - MVVM WPF ComboBox SelectedItem 绑定(bind)未在数据网格内激活

c# - 查询优化或在 ViewModel 中的 DoWork 内缓慢填充 ObservableObject

Winforms 上的 WPF 菜单

c# - 如何将巨大 Canvas 的一部分导出为 PNG

c# - WPF - DataGrid 仅显示基类的属性

datagrid - Rebol 网格控件

c# - 如何检索具有特定属性的所有字段?

c# - OO设计,私有(private)方法之间传递参数还是访问成员变量?

c# - 如何判断传入一个对象是否优于几个参数(int、string等)