simmeone simmeone - 1 year ago 325
C# Question

WPF Datagrid Focus and keyboard focus

I have a WPF DataGrid and want to set the focus to the first item so that the user can navigate with the keyboard in the list of items, when the dialogue is opened the first time. With datagrid.Focus ( ); I can set the focus to the DataGrid, but this is apparently not the keyboard focus, because when I press the arrow down key, I cannot navigate in the DataGrid. The focus jump to the textbox "Description" but that is not what I want (see picture).

enter image description here

How can I set the focus and the keyboard focus in a correct way to the DataGrid? Thank for your help.

Answer Source

Ok, I found a solution. This works for me

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);

Now, I got the right focus and can navigate with keyboard.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download