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

WPF Speed Load Time of Expanding a Specific TreeView Element

我一直在尝试找出改进包含 1500 个平面节点的树视图元素加载时间的具体方法。目前展开单个节点需要15秒以上。

我已经尝试过关于虚拟化的建议,但我的理解是虚拟化基本上避免了加载和渲染看不见的元素。正确吗?

如果是这样,当您展开一个包含 1500 个项目的元素时会发生什么,那么它不需要加载这 1500 个项目吗?

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

那么有没有一种方法可以在后台加载树元素添加,这样即使在加载项目时我也可以显示树视图?

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

谢谢

虚拟化是合乎逻辑的方式。

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

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

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

我目前 运行正在使用 1920x1200 显示器,缩放比例为 100%(奇怪的是 "smaller")。折叠功能区的资源管理器向我展示了 43 个项目。 2000 像素将使我看到大约 73 个项目。 Explorer 中的项目几乎和我希望的一样小,而且不会失明。

底线:您不太可能 运行 解决虚拟化问题。

对于遇到这个问题的任何人。确保您没有将(甚至没有滚动查看器)包裹在与树视图相同的网格中。

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