ListViewCachingStrategy Enumeración
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Enumera las estrategias de almacenamiento en caché de un ListView.
Esta enumeración admite una combinación bit a bit de sus valores de miembro.
public enum class ListViewCachingStrategy
[System.Flags]
public enum ListViewCachingStrategy
[<System.Flags>]
type ListViewCachingStrategy =
Public Enum ListViewCachingStrategy
- Herencia
-
ListViewCachingStrategy
- Atributos
Campos
Nombre | Valor | Description |
---|---|---|
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. |
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. |
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. |
Comentarios
Los desarrolladores de aplicaciones pueden especificar uno de estos valores al construir un ListView para determinar si la vista de lista minimizará su superficie de memoria y acelerará la ejecución mediante el reciclaje de celdas de lista, o generará una celda para cada elemento de la lista. Actualmente, el comportamiento predeterminado es conservar los datos de elementos en sus celdas generadas cuando no son necesarios. (Los elementos no son necesarios, por ejemplo, cuando están lo suficientemente alejados de la pantalla que su pantalla no es inminente). Este comportamiento corresponde a un valor de RetainElement. Por motivos de rendimiento, es probable que el comportamiento predeterminado se cambie a RecycleElement en una versión futura. Mientras tanto, por motivos de memoria y rendimiento, los desarrolladores de aplicaciones deben especificar RecycleElement al construir una nueva vista de lista.
La ventaja de rendimiento de es tan excelente que los desarrolladores de RecycleElement aplicaciones se han proporcionado con un acceso directo de sintaxis XAML para inicializar vistas de lista. En lugar de la x:TypeArguments
sintaxis que especifica un parámetro para el ListView(ListViewCachingStrategy) constructor, XAML para Microsoft.Maui.Controls proporciona un atributo XAML para una propiedad inexistente que corresponde al argumento de estrategia de almacenamiento en caché del constructor. Los desarrolladores de aplicaciones pueden establecer el CachingStrategy
atributo en cualquiera de los RecycleElement
valores (preferidos) o RetainElement
para elegir una estrategia de almacenamiento en caché. Por ejemplo:
<ListView CachingStrategy="RecycleElement" >
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<!-- ... -->
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Nota: cuando los desarrolladores especifican RecycleElement, OnElementChanged
los eventos no se generan cuando se reciclan las celdas. En su lugar, la celda se conserva y sus valores de propiedad cambian cuando el contexto de enlace se actualiza a la de una celda disponible, OnElementPropertyChanged
se generan eventos. Los desarrolladores de aplicaciones deben recordar escuchar los eventos correctos y deben tener en cuenta que sus representadores deberán actualizarse si el comportamiento predeterminado cambia a RecycleElement en una versión futura.
Nota: La plataforma para UWP omite RetainElement, porque siempre usa el almacenamiento en caché para mejorar el rendimiento. Por lo tanto, si el desarrollador ha optado por no usar enlaces de datos, deben usar OnBindingContextChanged() para actualizar los datos de celda en UWP, ya que siempre se comporta como si RecycleElement se especificara.