Windows phone 7 如何在Windows Phone上处理大列表

Windows phone 7 如何在Windows Phone上处理大列表,windows-phone-7,Windows Phone 7,我有这个xaml: <controls:Pivot> <controls:PivotItem Header="All Stations"> <ScrollViewer> <ItemsControl x:Name="allStations"> <ItemsControl.ItemsPanel>

我有这个xaml:

    <controls:Pivot>
        <controls:PivotItem Header="All Stations">
            <ScrollViewer>
                <ItemsControl x:Name="allStations">
                    <ItemsControl.ItemsPanel>
                        <ItemsPanelTemplate>
                            <VirtualizingStackPanel />
                        </ItemsPanelTemplate>
                    </ItemsControl.ItemsPanel>
                    <ItemsControl.ItemTemplate>
                        <DataTemplate>
                            <Button Content="{Binding Name}"
                                    Click="OnStationClick" />
                        </DataTemplate>
                    </ItemsControl.ItemTemplate>
                </ItemsControl>
            </ScrollViewer>
        </controls:PivotItem>
    </controls:Pivot>


在代码隐藏中,我将
allStations.ItemsSource
设置为一个包含大约2500个项目的集合,这会使UI冻结几秒钟。我能做些什么来加速这个负载?虚拟化应该确保它只需要为10个左右的项目创建控件,但它似乎正在为所有项目创建控件。

不要绑定到庞大的2500个项目集合。将前50-100项复制到observable collection,并将其绑定到所有站点。然后简单地将接下来的50-100项复制到可观察的集合中