WPF Toolkit: how to scroll datagrid to show selected item from code behind?

Akash Kava picture Akash Kava · Dec 31, 2009 · Viewed 25.1k times · Source

I tried the following, all of which fail on function ScrollIntoView and give a NullReferenceException:

// doesn't work
grid.SelectedItem = sItem;
grid.ScrollIntoView(sItem);

// doesn't work
grid.SelectedItem = sItem;
grid.Focus();
grid.CurrentColumn = grid.Columns[0];
grid.UpdateLayout();
grid.ScrollIntoView(sItem,grid.Columns[0]);

// doesn't work
grid.SelectedItem = sItem;
grid.UpdateLayout();
grid.ScrollIntoView(sItem);

The problem is, when I select a row from code-behind, selection is not visible - it's somewhere down the bottom. Unless the user scrolls they feels that selection has vanished. I need to scroll a DataGrid to the point that user can see the selection.

I also tried "BringIntoView" as well but no luck.

Answer

Keith Harrison picture Keith Harrison · Dec 31, 2009

Try:

grid.SelectedItem = sItem; 
grid.UpdateLayout();
grid.ScrollIntoView(grid.SelectedItem);