Reducir el tiempo de inicio de las aplicaciones con controles GridView y ListView (XAML)

Para crear cada elemento en un control GridView o ListView, Windows en tiempo de ejecución usa memoria y tiempo de computación. Cada elemento puede constar de varios elementos para mostrar su estado, incluidos algunos para cosas como seleccionar un elemento, mantener el mouse sobre él o cambiar el foco a él. En Windows 8, todos estos elementos se crean por adelantado, aunque solo se usen unos pocos. El resultado es que se tarda más en iniciar. En Windows 8.1, se ha mejorado el tiempo de inicio con la introducción de las clases GridViewItemPresenter y ListViewItemPresenter, y el método GoToElementStateCore.

GridViewItemPresenter y ListViewItemPresenter

La clase GridViewItemPresenter (para el control GridView) y la clase ListViewItemPresenter (para el control ListView) crean objetos únicamente cuando se necesitan y el rendimiento de estos es mejor en Windows 8.1 que en Windows 8. Además, es mucho más fácil personalizar el comportamiento de estado de los elementos con estas clases en Windows 8.1 que en Windows 8.

Para demostrarlo, tenemos aquí marcado en lenguaje XAML para Windows 8.1 que quita la marca de verificación que aparece de manera predeterminada cuando se selecciona un elemento y cambia el color de fondo del elemento seleccionado a naranja.


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


Para encontrar las dos líneas exactas de marcado XAML que hay que usar, SelectionCheckMarkVisualEnabled="False" y SelectedBackground="Orange", hay que elegir en una lista con 25 propiedades cuyos nombres son descriptivos.

En comparación, hacer algo similar en Windows 8 supone buscar en más de 250 líneas de marcado XAML generado que es menos descriptivo y modificar el marcado de destino directamente o copiarlo en tu propio código de marcado XAML y modificarlo allí. Ambos métodos llevan mucho más tiempo y dejan la puerta abierta a errores.

GoToElementStateCore

Si quieres crear una plantilla de elemento personalizada, por ejemplo, quieres cambiar el comportamiento visual predeterminado de un elemento en un control GridView o ListView (como cambiar la marca de verificación de un elemento seleccionado a una forma diferente), puedes usar el método GoToElementStateCore. Este método sirve para agregar elementos a una jerarquía de elementos visuales que describen el estado de un elemento para cosas como comportamientos para seleccionar, cambiar el foco y mantener el mouse. El método GoToElementStateCore permite la construcción por estado de estos tipos de elementos visuales, en lugar de cargar XAML para todos los estados cuando se inicia un control. Con este método se puede lograr un mejor inicio de los controles en comparación con la creación de una implementación personalizada.

Para ver código que muestra cómo usar el método GoToElementStateCore, consulta el ejemplo de XAML ListView y el GridView ejemplo de conceptos esenciales.

Temas relacionados

Cargar, almacenar y mostrar grandes conjuntos de datos de forma eficiente
Actualizar los elementos GridView y ListView de forma incremental
Minimizar el tiempo de inicio

 

 

Mostrar:
© 2015 Microsoft