【问题标题】:virtualizing treeview in silverlight在 Silverlight 中虚拟化树视图
【发布时间】:2011-04-29 22:16:22
【问题描述】:

我正在使用 silverlight 工具包树视图来显示一组数据。它有 1000 个元素,一些子元素也有多达 500 个子元素。加载数据并在树视图中显示它需要将近一分钟。树视图是否具有虚拟化功能?如果是这样,请有人给我一个示例或代码 sn-p 吗?

以下是 XAML

<controls:TreeView Grid.Column="0" VerticalAlignment="Stretch"
                               ItemsSource="{Binding People}" >
        <controls:TreeView.ItemTemplate>
            <common:HierarchicalDataTemplate ItemsSource="{Binding Children}">
                <StackPanel>
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="10*"/>
                            <ColumnDefinition Width="90*"/>                  
                        </Grid.ColumnDefinitions>
                        <CheckBox IsChecked="{Binding TwoState}" Grid.Column="0"/>
                        <TextBlock Grid.Column="1" Text="{Binding Name}"/>
                    </Grid>
                </StackPanel>
            </common:HierarchicalDataTemplate>
        </controls:TreeView.ItemTemplate>
    </controls:TreeView>

下面是我使用的person类

public class Person:INotifyPropertyChanged
{
    public string Name { get; set; }
    public int Age { get; set; }
    public bool TwoState { get; set; }
    public ObservableCollection<Person> Children { get; set; }

    public Person()
    {
        TwoState = false;
        Children = new ObservableCollection<Person>();
    }

    public event PropertyChangedEventHandler PropertyChanged;
    private void NotifyPropertyChanged(string info)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(info));
        }
    }
}

【问题讨论】:

    标签: silverlight-4.0 treeview silverlight-toolkit


    【解决方案1】:

    您应该查看 Bea Costa 关于此事的文章。 查看她的博客here。从 3.5 开始,silverlight 为树视图提供了可选的虚拟化。可以加快性能的一件事是按需加载子节点。她在她的文章中介绍了这一点。

    基本上,归结为:您应该只加载您需要的内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多