在跟随这个问题和这个问题之后,我现在有了一个类似下图的具有分层数据的TreeView:
由于数据量很大,我已经打开了TreeView
的Virtualization
属性(VirtualizingPanel.IsVirtualizing="True"
)。现在问题是:滚动树非常不稳定。我试图解释这种无法解释的行为:
- 滚动时,项目会消失/卸载。使用 WPF Inspector,我实际上看到它们不断地卸载和重新加载。
- 在滚动第3级项目时,树不会加载尚未加载的项目(如预期),但下一个第2级项目会跳到可见的第3级项目之上。
备注:
- 当所有的Level2项目都折叠时,滚动正常工作。
- 关闭虚拟化可以解决滚动问题(但在这种情况下我会遇到加载问题)
- 我已经阅读了这里,说这个bug已经在.Net 4.5.2中修复。我甚至尝试了.Net 4.7.1,但行为仍然相同。
有没有办法可以避免这种行为?