3

私は自分のプロジェクトでMVVMを使用しており、グリッドをパネルとして持つitemscontrolを持っています

<ItemsControl
                ItemsSource="{Binding Items}"
                ItemTemplateSelector="{StaticResource TemplateSelector}">
                <ItemsControl.ItemContainerStyle>
                    <Style>
                        <Setter
                            Property="Grid.Row"
                            Value="{Binding Row}" />
                        <Setter
                            Property="Grid.Column"
                            Value="{Binding Column}" />
                        <Setter
                            Property="Grid.ColumnSpan"
                            Value="{Binding HorizontalSize}" />
                        <Setter
                            Property="Grid.RowSpan"
                            Value="{Binding VerticalSize}" />
                    </Style>
                </ItemsControl.ItemContainerStyle>
                <ItemsControl.ItemsPanel>
                    <ItemsPanelTemplate>
                        <Grid
                            ShowGridLines="False"
                            wpflib:GridHelpers.ColumnCount="{Binding Columns, Mode=OneWay}"
                            wpflib:GridHelpers.RowCount="{Binding Rows, Mode=OneWay}"
                            wpflib:GridHelpers.AutoRows="{Binding AutoRowsFormatted, Mode=OneWay}"
                            wpflib:GridHelpers.AutoColumns="{Binding AutoColumnsFormatted, Mode=OneWay}" />
                    </ItemsPanelTemplate>
                </ItemsControl.ItemsPanel>
            </ItemsControl>

項目テンプレートはカスタム スタイルのボタンです。

グリッドに 20 個のアイテムのみを表示しようとしていますが、アイテムがビュー モデルに追加されるとパフォーマンスの問題が発生します。

currentPage.Items = observable; 

これらのアイテムを表示するのに 2 秒ほどかかります。これをより速くする方法はありますか?

4

0 に答える 0