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

26,501

Solution 1

Virtualized Stack Panel didn't have an item container, because Item Container does not exist for the item outside the view and that's why this error was shown. Disabling virtualization resolves the issue for now, and the bug has been reported to codeplex toolkit project.

Solution 2

Try:

grid.SelectedItem = sItem; 
grid.UpdateLayout();
grid.ScrollIntoView(grid.SelectedItem);
Share:
26,501
Akash Kava
Author by

Akash Kava

Author of, YantraJS - JavaScript engine & runtime for .NET Standard GushCRM - CRM for Talent/Acting Agencies Blog: www.webatoms.in/blog Twitter: twitter.com/akashkava GitHub: github.com/neurospeech Company: neurospeech.com

Updated on June 15, 2020

Comments

  • Akash Kava
    Akash Kava almost 4 years

    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.