WPF工具包:如何​​滚动数据网格以显示代码后面的选定项目?

Aka*_*ava 12 wpf datagrid scroll selection wpftoolkit

我尝试了以下操作,所有这些都在函数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);
Run Code Online (Sandbox Code Playgroud)

问题是,当我从代码隐藏中选择一行时,选择是不可见的 - 它位于底部的某个位置.除非用户滚动,否则他们会觉得选择已经消失.我需要将DataGrid滚动到用户可以看到选择的程度.

我也试过"BringIntoView",但没有运气.

Kei*_*son 42

尝试:

grid.SelectedItem = sItem; 
grid.UpdateLayout();
grid.ScrollIntoView(grid.SelectedItem);
Run Code Online (Sandbox Code Playgroud)


Aka*_*ava 6

虚拟化堆栈面板没有项目容器,因为视图外部的项目不存在项目容器,这就是显示此错误的原因.禁用虚拟化暂时解决了这个问题,并且已经向codeplex工具包项目报告了该错误.