Améliorer le délai de démarrage des applications avec les contrôles GridView et ListView (XAML)

Applies to Windows and Windows Phone

Pour créer chaque élément dans un contrôle GridView ou ListView, le Windows Runtime utilise le temps de calcul et la mémoire. Chaque élément peut être constitué de plusieurs éléments pour indiquer son état, notamment des éléments pour des actions associées à un élément, telles que la sélection, le pointage et le focus. Dans Windows 8, tous ces éléments sont créés à l’avance, même si un petit nombre d’entre eux uniquement est utilisé. Cela rallonge le temps nécessaire au démarrage. Dans Windows 8.1, le temps nécessaire au démarrage est amélioré avec l’introduction des classes GridViewItemPresenter et ListViewItemPresenter ainsi que de la méthode GoToElementStateCore.

GridViewItemPresenter et ListViewItemPresenter

La classe GridViewItemPresenter (pour le contrôle GridView) et la classe ListViewItemPresenter (pour le contrôle ListView) créent des objets uniquement si nécessaire, et les objets fonctionnent mieux dans Windows 8.1 que dans Windows 8. Il est également beaucoup plus facile de personnaliser le comportement de l’état de l’élément avec ces classes dans Windows 8.1 que dans Windows 8.

Pour en faire la démonstration, voici un balisage XAML (Extensible Application Markup Language) pour Windows 8.1 qui supprime la coche qui s’affiche par défaut quand un élément est sélectionné, puis remplace la couleur d’arrière-plan de l’élément sélectionné par la couleur orange.


<!-- ... -->
<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>
<!-- ... -->


La recherche des deux lignes correctes de balisage XAML à utiliser, SelectionCheckMarkVisualEnabled="False" et SelectedBackground="Orange", implique de choisir dans une liste d’environ 25 propriétés disponibles portant des noms autodescriptifs.

En comparaison, la même opération dans Windows 8 implique de passer en revue plus de 250 lignes de balisage XAML généré moins descriptif, et de modifier le balisage cible en place ou de copier le balisage cible dans votre propre code de balisage XAML et de le modifier ensuite à cet endroit. Les deux approches prennent beaucoup plus de temps et sont sujettes aux erreurs.

GoToElementStateCore

Si vous voulez créer un modèle d’élément personnalisé — disons que vous voulez modifier le comportement visuel par défaut d’un élément dans un contrôle GridView ou ListView, par exemple en changeant la forme de la coche d’un élément sélectionné — vous pouvez utiliser la méthode GoToElementStateCore. Cette méthode permet d’ajouter des éléments à une hiérarchie d’éléments visuels qui décrivent l’état d’un élément pour des actions, telles que la sélection, le pointage et le focus. La méthode GoToElementStateCore permet une construction par état de ces types d’éléments visuels, plutôt qu’en chargeant le XAML pour tous les états au démarrage d’un contrôle. L’utilisation de cette méthode peut aboutir à un meilleur démarrage du contrôle par rapport à la création d’une implémentation personnalisée.

Pour obtenir le code qui montre comment utiliser la méthode GoToElementStateCore, voir l’Exemple d’utilisation des contrôles ListView et GridView XAML.

Rubriques associées

Charger, stocker et afficher des ensembles importants de données de façon performante
Mettre à jour les éléments GridView et ListView de façon incrémentielle
Réduire le temps de démarrage

 

 

Afficher:
© 2014 Microsoft