none
TreeView第一次加载时很慢,求指教,谢谢! RRS feed

  • 问题

  • 我新建了一个TreeView,里面有很多项的TreeViewItem,然后我第一次展开这个Tree很慢,以后就没有这个问题了。谢谢!
    2016年3月31日 6:10

全部回复

  • 你的TreeView的子层是否开启了虚拟化?

    我觉得TreeView你可以用Lazy Load方式,延后加载,在这个节点展开的时候采取加载它的内容。在节点的Expanded事件中讲他的子元素添加进去。

    http://www.codeproject.com/Articles/43088/LazyLoad-WPF-Treeview-with-Large-Amount-of-Two-Lev

    http://www.wpf-tutorial.com/treeview-control/lazy-loading-treeview-items/


    Bob Bao

    Do you still use the same Windows 8 LockScreen always? Download Chameleon Win8 App quickly, that changes your LockScreen constantly.
    你是否还在看着一成不变的Windows 8锁屏而烦恼,赶紧下载这个 百变锁屏 应用,让你的锁屏不断地变化起来。

    2016年3月31日 7:00
    版主
  • 谢谢您在百忙之中给我答复,

     <TreeView x:Name="videoResourceTree"
                      Background="White"
                      BorderThickness="0"
                      VirtualizingStackPanel.IsVirtualizing="True"
                      VirtualizingStackPanel.VirtualizationMode="Recycling">
                <TreeView.ItemContainerStyle>
                    <Style BasedOn="{StaticResource TreeViewItemStyle}" TargetType="{x:Type TreeViewItem}">
                        <Setter Property="IsSelected" Value="{Binding Path=IsSelected, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
                        <Setter Property="IsExpanded" Value="{Binding Path=IsExpanded, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
                    </Style>
                </TreeView.ItemContainerStyle>
                <TreeView.Resources>
                    <HierarchicalDataTemplate DataType="{x:Type entity:CaseCamera}" ItemsSource="{Binding AttachmentGroupList}">
                        <StackPanel x:Name="stackPanelCamera"
                                    Background="Transparent"
                                    Orientation="Horizontal"
                                    PreviewMouseRightButtonDown="stackPanelCamera_PreviewMouseRightButtonDown"
                                    PreviewMouseDown="stackPanelCamera_PreviewMouseDown">
                            <Image Width="20"
                                   Height="20"
                                   Source="{Binding Converter={StaticResource ImageConverter}}" /> 
                            <TextBlock Margin="5,0"
                                       VerticalAlignment="Center"
                                       Text="{Binding Name}" />
                        </StackPanel>
                    </HierarchicalDataTemplate>

    我的是这样绑定的,

    2016年3月31日 8:59
  • 您好 Marry_Xia,

    从您的绑定方法,可以得出TreevView会在一次性加载所有的数据。所以当数据量很大的时候容易出现第一次展开这个Tree很慢的现象。@Bob_Bao给出了建议和参考链接都非常棒,建议您参考和学习下。

    Best Regards,
    Li Wang


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2016年4月5日 9:44