WPF扩展特定TreeView元素的速度加载时间

WPF扩展特定TreeView元素的速度加载时间,wpf,optimization,treeview,Wpf,Optimization,Treeview,我一直在试图找到改善包含1500个平面节点的treeview元素的加载时间的具体方法。目前,扩展单个节点需要15秒以上的时间 我尝试过关于虚拟化的建议,但据我所知,虚拟化基本上避免了加载和呈现看不见的元素。对吗 如果是这样的话,当您展开一个元素时会发生什么情况?在这个扩展中有1500个项目,那么它不需要加载这1500个项目吗 显然,如果我将我的TreeView拆分,以便每次添加10个元素时,它都会添加另一个文件夹。所以你不能一次看到整个树视图。这对我来说真的不是一个选择 那么,有没有一种方法可以

我一直在试图找到改善包含1500个平面节点的treeview元素的加载时间的具体方法。目前,扩展单个节点需要15秒以上的时间

我尝试过关于虚拟化的建议,但据我所知,虚拟化基本上避免了加载和呈现看不见的元素。对吗

如果是这样的话,当您展开一个元素时会发生什么情况?在这个扩展中有1500个项目,那么它不需要加载这1500个项目吗

显然,如果我将我的TreeView拆分,以便每次添加10个元素时,它都会添加另一个文件夹。所以你不能一次看到整个树视图。这对我来说真的不是一个选择

那么,有没有一种方法可以在后台加载tree元素add,这样即使在加载项目时也可以显示treeview

这是我能想到的唯一解决方案,但我还没有找到一种能够同时更新UI而不阻塞的方法


谢谢

虚拟化是一种合乎逻辑的方式

数学是你在这里的朋友: 为了便于讨论,我们假设1个节点占用了非常小的5个垂直像素。高度为7500像素的屏幕将能够显示所有1500个节点

将节点数减半至750个仍需要3750像素的高度

如果我们为一个节点选择一个更合理的高度,我认为默认值是19,一个像样的4K监视器可以显示大约200个节点

我目前在1920x1200显示器上运行,100%的缩放率奇怪地被称为更小。“资源管理器”在功能区折叠的情况下向我显示43个项目。2000像素会让我看到大约73个项目。而且Explorer中的项目几乎和我希望的一样小,不会失明


一句话:你不太可能遇到虚拟化的问题。

对于任何遇到这个问题的人来说。确保您没有将scrollviewer打包,甚至没有将它与treeview放在同一个网格中


它在没有任何警告的情况下完全禁用了虚拟化。

我现在同意这一点——我组装了一个测试应用程序,虚拟化成功了,所以我从我的大型应用程序中取出了一些内容,直到虚拟化真正按照我的预期运行,并发现它是一个胭脂卷轴查看器。谢谢你的回复。