C# WPF TreeView TreeViewItem获取,并滚动到指定的位置
在使用TreeView 时,我们往往绑定的一个数据,但操作TreeViewItem相关的比较麻烦,因为其动态加载的特性,往往TreeViewItem得到了null。
1、获取TreeViewItem
这个是最重要的,必须一层层地从最高级别获取下去
使用:
TreeViewItem treeViewItemFind = SelectTreeView.ItemContainerGenerator.ContainerFromItem(第一级绑定的object) as TreeViewItem;
获取后务必展开!!
if (treeViewItemFind != null)
{
treeViewItemFind.ExpandSubtree();
}
然后,每一层都顺序获取、展开,直到获取到想显示的TreeViewItem
treeViewItemFind = treeViewItemFind.ItemContainerGenerator.ContainerFromItem(本层绑定的object) as TreeViewItem;
if (treeViewItemFind != null)
{
treeViewItemFind.ExpandSubtree();
}
2、将TreeView滚动到指定位置
if (treeViewItemFind != null)
treeViewItemFind.BringIntoView(new Rect(0, -200, 100, 400));
BringIntoView,里面的Rect,指的是,以treeViewItemFind的位置为原点,(0,-200)的地方(这个treeViewItemFind的正上方200的位置),绘制一个(100*400)的长方形。并且使得这个长方形在TreeView中可见。
这样子就可以做到滚动的位置不至于在边缘。