我正在使用通过MVVM绑定到我的类的WPF TreeView来显示大量的多级数据。因此,当我扩展TreeNode时,需要一些时间和大量内存。
我认为,内存需求来自TreeView,它不仅仅是第一代子节点,而是迫使这些节点加载数据。
有没有办法将这种“侦察”行为仅限于第一代子节点?
答案 0 :(得分:1)
WPF仅在显示TreeViewItem时生成TreeViewItem,即在其Parent展开之前不生成任何项目。所以,我认为这个问题不是“侦察”。
无论如何,您可以尝试通过使用TwoWay Binding添加与TreeViewItem.IsExpanded的同步来在ViewModel中实现动态加载。看看this。您可以对IsExpanded属性使用相同的解决方案。不要忘记添加假项目告诉TreeViewItem它是可扩展的。
答案 1 :(得分:1)
检查TreeView是否正在使用VirtualizingStackPanel。我相信它在.NET 4.0中默认使用,但您必须在以前的.NET版本中明确设置它。