【发布时间】:2018-05-07 02:08:23
【问题描述】:
按照this question 和this question,现在我有一个带有分层数据的TreeView,如下图所示:
由于数据量大,我开启了TreeView的Virtualization属性(VirtualizingPanel.IsVirtualizing="True")。
现在问题是:滚动树非常不稳定。我试图解释无法解释的行为:
- 滚动时,项目刚刚消失/卸载。使用WPF Inspector,我实际上看到,它们会不断卸载并再次加载。
- 在滚动第 3 级项目时,树不会加载仍未加载的项目(如预期的那样),但下一个第 2 级项目会跳到可见的第 3 级项目之上。
注意事项:
- 当所有 Level2 项目都折叠时,滚动工作正常。
- 关闭虚拟化可以解决滚动问题(当然在这种情况下我遇到了加载问题)
- 我已阅读 here,该错误已在 .Net 4.5.2 中修复。我什至尝试过.Net 4.7.1。行为保持不变。
有什么办法可以避免这种行为?
【问题讨论】:
-
我不确定我是否理解症状。您是说 2 级项目叠加在 3 级项目之上 - 绘制在同一个地方?
-
听起来您发现了一个与您引用的 4.5.2 错误具有相似症状但根本原因不同的错误。请在connect.microsoft.com 打开一个错误并附上一个复制品(或与我分享一个复制品)。该行为可能取决于您的 TreeView 及其项目的模板和样式,您没有在此处显示。我们最近修复了(针对 4.7.2)当您为 TreeViewItem 的展开/折叠设置动画时出现的一组问题,但症状有所不同 - 没有叠加渲染。
标签: .net wpf treeview virtualization smooth-scrolling