WPF: How do I set the focus on a datagrid to a specific row?

Jonathan Allen picture Jonathan Allen · Mar 19, 2010 · Viewed 16.2k times · Source

I would like to set the focus on the first row of a data grid.

This is what I have so far:

Keyboard.Focus(ResultsGrid)
If result.Count > 0 Then
    ResultsGrid.SelectedIndex = 0
End If

This will set the focus to the datagrid, but not the row itself.

Answer

Guido Zanon picture Guido Zanon · Jan 21, 2012

After selecting the row you will have to set the focus on the row in the following way:

ResultsGrid.SelectedIndex = index;
DataGridRow row = (DataGridRow)ResultsGrid.ItemContainerGenerator.ContainerFromIndex(index);
row.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));