ListViewCachingStrategy Enumeración

Definición

Enumera las estrategias de almacenamiento en caché de un ListView.Enumerates caching strategies for a ListView.

Esta enumeración tiene el atributo FlagsAttribute, que permite una combinación bit a bit de sus valores de miembro.

[System.Flags]
public enum ListViewCachingStrategy
type ListViewCachingStrategy = 
Herencia
ListViewCachingStrategy
Atributos

Campos

RecycleElement 1

Indica que los contextos de enlace de las celdas que sean innecesarias se actualizarán según el contexto de una celda que sí es necesaria.Indicates that unneeded cells will have their binding contexts updated to that of a cell that is needed.

RecycleElementAndDataTemplate 3

Indica que, además del comportamiento especificado por RecycleElement, los objetos DataTemplate que un DataTemplateSelector haya seleccionado se almacenarán en caché mediante el tipo de plantilla de datos.Indicates that, in addition to the behavior specified by RecycleElement, DataTemplate objects that are selected by a DataTemplateSelector are cached by the data template type.

RetainElement 0

Indica que, por cada elemento que haya en la propiedad ItemsSource de la vista de lista, se construirá un único elemento a partir de la DataTemplate.Indicates that for every item in the List View's ItemsSource property, a single unique element will be constructed from the DataTemplate.

Comentarios

Los desarrolladores de aplicaciones pueden especificar uno de estos valores al construir un ListView para determinar si la vista de lista reducirá su ejecución de velocidad y la superficie de memoria mediante el reciclado de celdas de la lista, o en su lugar, se generará una celda para todos los elementos en la lista.Application developers can specify one of these values when constructing a ListView to determine whether the List View will minimize their memory footprint and speed execution by recycling list cells, or will instead generate a cell for every item in the list. Actualmente, el comportamiento predeterminado es conservar los datos de elemento en sus celdas generados cuando no se necesitan.Currently, the default behavior is to retain item data in their generated cells when they are not needed. (Los elementos no son necesarios, por ejemplo, cuando estén lo suficientemente fuera de pantalla que su visualización no es inminente.) Este comportamiento corresponde a un valor de RetainElement.(Items are not needed, for example, when they are far enough off screen that their display is not imminent.) This behavior corresponds to a value of RetainElement. Por motivos de rendimiento, es probable que el comportamiento predeterminado se cambiará a RecycleElement en una versión futura.For performance reasons, it is likely that the default behavior will be changed to RecycleElement in a future release. Mientras tanto, por motivos de rendimiento y memoria, los desarrolladores de aplicaciones deben especificar RecycleElement al construir una nueva vista de lista.In the meantime, for memory and performance reasons, app developers should specify RecycleElement when constructing a new List View.

La ventaja de rendimiento RecycleElement es tan importante que los desarrolladores de aplicaciones se han proporcionado con un acceso directo de sintaxis XAML para inicializar las vistas de lista.The performance advantage of RecycleElement is so great that application developers have been provided with a XAML syntax shortcut for initializing List Views. En lugar de x: TypeArguments sintaxis que especifica un parámetro para el ListView(ListViewCachingStrategy) constructor, XAML para Xamarin.Forms proporciona un atributo XAML para una propiedad inexistente que corresponda al argumento de estrategia de almacenamiento en caché de el constructor.Instead of x:TypeArguments syntax that specifies a parameter for the ListView(ListViewCachingStrategy) constructor, XAML for Xamarin.Forms provides a XAML attribute for a non-existent property that corresponds to the caching strategy argument of the constructor. Los desarrolladores de aplicaciones pueden establecer la CachingStrategy atributo a cualquiera de los RecycleElement (opción preferida) o RetainElement valores para elegir una estrategia de almacenamiento en caché.Application developers can set the CachingStrategy attribute to either of the RecycleElement (preferred) or RetainElement values to choose a caching strategy. Por ejemplo:For example:


<ListView CachingStrategy="RecycleElement" >
    <ListView.ItemTemplate>
        <DataTemplate>
            <ViewCell>
                <!-- ... -->
            </ViewCell>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

Cuando se especifican desarrolladores RecycleElement, OnElementChanged no se generan eventos cuando se reciclan las celdas.When devolopers specify RecycleElement, OnElementChanged events are not raised when cells are recycled. En su lugar, se conserva la celda y sus valores de propiedad cambien cuando se actualiza el contexto de enlace a la de una celda disponible, OnElementPropertyChanged se generan eventos.Instead, the cell is retained and its property values change when the binding context is updated to that of an available cell, OnElementPropertyChanged events are raised. Los desarrolladores de aplicaciones debe recordar escuchar los eventos correctos y debe tener en cuenta que los representadores deberán actualizarse si cambia el comportamiento predeterminado a RecycleElement en una versión futura.Application developers should remember to listen for the correct events, and should note that their renderers will need to be updated if the default behavior changes to RecycleElement in a future release.

Omite la plataforma UWP RetainElement, porque siempre usa almacenamiento en caché para mejorar el rendimiento.The UWP platform ignores RetainElement, because it always uses caching to improve performance. Por lo tanto, si el desarrollador ha optado por no para usar enlaces de datos, debe usar OnBindingContextChanged() para actualizar los datos de celda en UWP, porque siempre se comporta como si RecycleElement se ha especificado.Therefore, if the developer has opted not to use data bindings, they must use OnBindingContextChanged() to update cell data on UWP, because it always behaves as if RecycleElement was specified.

Se aplica a