GridView と ListView の起動の向上

GridView と ListView コントロールがあるアプリの起動時間の短縮 (XAML)

[ この記事は、Windows ランタイム アプリを作成する Windows 8.x および Windows Phone 8.x 開発者を対象としています。Windows 10 向けの開発を行っている場合は、「最新のドキュメント」をご覧ください]

GridView または ListView コントロール内の各項目を作るために、Windows ランタイムは計算時間とメモリを使います。各項目は、その状態を示す複数の要素 (項目を選択している、項目をポイントしている、項目にフォーカスを置いているなど) から構成できます。Windows 8 では、これらの要素のいくつかしか使われなくても、事前にすべての要素が作成されます。そのため、起動時間が長くなります。Windows 8.1 では、GridViewItemPresenter および ListViewItemPresenter クラスと GoToElementStateCore メソッドの導入により、起動時間が短縮されました。

GridViewItemPresenterListViewItemPresenter

GridViewItemPresenter クラス (GridView コントロール用) と ListViewItemPresenter クラス (ListView コントロール用) は、必要な場合にだけオブジェクトを作り、オブジェクトのパフォーマンスは Windows 8.1 で Windows 8 よりも高くなっています。また、これらのクラスでの項目の状態の動作に対するカスタマイズも Windows 8 よりも Windows 8.1 でずっと簡単になりました。

デモンストレーションとして、以下に Windows 8.1 の XAML (eXtensible Application Markup Language) マークアップを示します。このマークアップは、項目が選ばれたときに既定で表示されるチェック マークを削除し、選ばれた項目の背景色をオレンジ色に変更します。


<!-- ... -->
<GridView>
    <!-- ... -->
    <GridView.ItemContainerStyle>
        <Style TargetType="GridViewItem">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="GridViewItem">
                        <GridViewItemPresenter
                            SelectionCheckMarkVisualEnabled="False"
                            SelectedBackground="Orange"/>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </GridView.ItemContainerStyle>
</GridView>
<!-- ... -->


該当する 2 行の XAML マークアップ (SelectionCheckMarkVisualEnabled="False"SelectedBackground="Orange") を見つけるには、使用可能な約 25 個のわかりやすい名前のプロパティの一覧から探すことになります。

一方、Windows 8 で同様のことをするには、生成された 250 行以上のわかりにくい XAML マークアップの中から探し、目的のマークアップをその場所で変更するか、独自の XAML マークアップ コード内にコピーしてから変更することになります。どちらの方法も、はるかに時間がかかり、エラーが起きやすくなります。

GoToElementStateCore

カスタムの項目テンプレートを作る場合、たとえば、GridView または ListView コントロールで項目の既定のビジュアル動作を変更する場合は、GoToElementStateCore メソッドを使うことができます (選ばれた項目のチェック マークを別の形に変えるなど)。このメソッドを使うと、項目の状態 (選択、ホバー、フォーカスの動作など) を説明する視覚要素の階層に項目を追加できます。GoToElementStateCore メソッドは、コントロールの起動時にすべての状態の XAML を読み込むのではなく、視覚要素のこのような種類の各状態の構造を有効にします。このメソッドを使うことで、カスタムの実装を作る場合よりも優れたコントロールの起動を実現できます。

GoToElementStateCore メソッドの使い方を示すコードについては、XAML ListViewGridView の基本項目のサンプルのページをご覧ください。

関連トピック

大きなデータ セットの効率的な読み込み、格納、表示
GridView と ListView の項目の段階的な更新
起動時間の最小化

 

 

表示:
© 2016 Microsoft