Я попробовал следующие, все из которых перестали работать на функциональном ScrollIntoView и дают 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);
Проблема, когда я выбираю строку из кода - позади, выбор не видим - это где-нибудь снижается на нижнюю часть. Если пользователь не прокручивает, они чувствуют, что выбор исчез. Я должен прокрутить DataGrid до такой степени, что пользователь видит выбор.
Я также попробовал "BringIntoView" также, но никакую удачу.
Виртуализированная панель стека не имеет контейнера элементов, потому что контейнер элементов не существует для элемента вне представления, и поэтому была показана эта ошибка. Отключение виртуализации решает проблему на данный момент, и об ошибке было сообщено проекту инструментария codeplex.
Попробуйте:
grid.SelectedItem = sItem;
grid.UpdateLayout();
grid.ScrollIntoView(grid.SelectedItem);