TreeView虚拟化跳转
程序员文章站
2022-06-09 13:05:06
使用ItemContainerGenerator.ContainerFromItem方法可以获取对应数据的UIElement 。 但是如果使用了虚拟化技术,超出可见区域的UIElement就获取不到了。 参考微软的文档《如何:在 TreeView 中查找 TreeViewItem》,去掉一些不必要的 ......
使用itemcontainergenerator.containerfromitem方法可以获取对应数据的uielement 。
但是如果使用了虚拟化技术,超出可见区域的uielement就获取不到了。
参考微软的文档《如何:在 treeview 中查找 treeviewitem》,去掉一些不必要的和过时的代码,写了一个完整的例子。
主要代码只有5行
1 itemscontrol.applytemplate(); 2 var itemspresenter = findvisualchild<itemspresenter>(itemscontrol); 3 itemspresenter.applytemplate(); 4 var virtualizingstackpanel = (virtualizingstackpanel)visualtreehelper.getchild(itemspresenter, 0); 5 virtualizingstackpanel.bringindexintoviewpublic(data.index);
通过这样的处理,就可以取到uielement啦。
itemscontrol = (itemscontrol)itemscontrol.itemcontainergenerator.containerfromitem(vm);
demo运行效果图
完整示例在我的github中
推荐阅读
-
英特尔虚拟化技术(VT-x)是什么技术
-
功能强大的个性化Jquery虚拟键盘(VirtualKeyboard)开发教程
-
如何开启笔记本的Virtualization Technology虚拟化技术功能
-
桌面虚拟化引领云计算时代办公
-
怎么在BIOS中开启VT?BIOS开启VT虚拟化技术图文教程
-
apache虚拟主机配置: 二级目录访问跳转到其他根文件夹
-
Windows ARM新技能:Hyper-V虚拟化功能开放
-
虚拟化使得中小企业进行大数据分析成为可能
-
shell脚本自动化创建虚拟机的基本配置之tomcat--mysql--jdk--maven
-
unbuntu16初始化设置,并解决虚拟机操作系统窗口不能自适应问题