【问题标题】:Limit how deep TreeView would go when expanding TreeNode in WPF限制在 WPF 中扩展 TreeNode 时 TreeView 的深度
【发布时间】:2012-04-16 01:46:06
【问题描述】:

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

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

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

【问题讨论】:

    标签: c# wpf xaml treeview


    【解决方案1】:

    WPF 仅在显示 TreeViewItem(s) 时生成,即在其父项展开之前不会生成任何项。所以,我认为问题不在于“侦察”。

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-07-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多