0

私はこの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 個ほどの項目のコントロールを作成するだけで済むようになるはずですが、すべての項目のコントロールを作成しているようです。

4

1 に答える 1

0

膨大な 2500 アイテムのコレクションに縛られないでください。最初の 50 ~ 100 個のアイテムを観察可能なコレクションにコピーし、それをallStationsにバインドします。次に、ユーザーがリストの一番下までスクロールしたことを検出し、次の 50 ~ 100 項目を監視可能なコレクションにコピーします。

于 2013-04-08T15:47:05.110 に答える