限制在WPF中扩展TreeNode时TreeView的深度

时间:2012-04-15 12:45:41

标签: c# wpf xaml treeview

我正在使用通过MVVM绑定到我的类的WPF TreeView来显示大量的多级数据。因此,当我扩展TreeNode时,需要一些时间和大量内存。

我认为,内存需求来自TreeView,它不仅仅是第一代子节点,而是迫使这些节点加载数据。

有没有办法将这种“侦察”行为仅限于第一代子节点?

2 个答案:

答案 0 :(得分:1)

WPF仅在显示TreeViewItem时生成TreeViewItem,即在其Parent展开之前不生成任何项目。所以,我认为这个问题不是“侦察”。

无论如何,您可以尝试通过使用TwoWay Binding添加与TreeViewItem.IsExpanded的同步来在ViewModel中实现动态加载。看看this。您可以对IsExpanded属性使用相同的解决方案。不要忘记添加假项目告诉TreeViewItem它是可扩展的。

答案 1 :(得分:1)

检查TreeView是否正在使用VirtualizingStackPanel。我相信它在.NET 4.0中默认使用,但您必须在以前的.NET版本中明确设置它。

有关详细信息,请参阅How to: Improve the Performance of a TreeView