none
TreeView里面加载很多TreeViewItem时,展开很慢 RRS feed

  • 问题

  • 我有个问题啊,我新建了一个TreeView,里面有很多项的TreeViewItem,然后我第一次展开这个Tree,貌似很慢,以后就没有这个问题了。关于这个我有个问题,那些TreeViewItems是不是在第一次展开时才初始化的。谢谢!
    2011年2月25日 8:47

答案

  • 设置TreeView的 VirtualizingStackPanel.IsVirtualizing 属性为True,主要思想就是你可以只加载可见项,不用加载所有的Item。

    你可以多参考一下WPF UI 虚拟化(Virtualization)相关的知识,通过这个可以解决你的问题,资料还是很多的。

    我简单的给你解释一下:

    上面我提到的那个附加属性其实是 VirtualizingPanel 类实现的,然后与 ItemsControl ItemContainerGenerator 一起工作,所以你可以通过设置那个属性来实现这个借口。

    甚至你也可以自己继承 VirtualizingPanel 类,但是会比较复杂,因为你要完成所有的虚拟化逻辑编写。

     

    Best regards,


    Sheldon _Xiao [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年2月25日 9:15
    版主

全部回复