ListViewCachingStrategy Перечисление
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Перечисляет стратегии кэширования для ListView.
Это перечисление поддерживает побитовую комбинацию значений его членов.
public enum class ListViewCachingStrategy
[System.Flags]
public enum ListViewCachingStrategy
[<System.Flags>]
type ListViewCachingStrategy =
Public Enum ListViewCachingStrategy
- Наследование
-
ListViewCachingStrategy
- Атрибуты
Поля
Имя | Значение | Описание |
---|---|---|
RetainElement | 0 | Указывает, что для каждого элемента в свойстве ItemsSource представления списка будет создан один уникальный элемент из DataTemplate. |
RecycleElement | 1 | Указывает, что контексты привязки ненужных ячеек будут обновляться в соответствии с нужной ячейкой. |
RecycleElementAndDataTemplate | 3 | Указывает, что, помимо поведения, определяемого RecycleElement, объекты DataTemplate, которые выбираются DataTemplateSelector, кэшируются типом шаблона данных. |
Комментарии
Разработчики приложений могут указать одно из этих значений при создании ListView представления списка, чтобы определить, будет ли представление списка свести к минимуму объем памяти и скорость выполнения путем повторного использования ячеек списка или создать ячейку для каждого элемента в списке. В настоящее время поведение по умолчанию заключается в сохранении данных элементов в созданных ячейках, если они не нужны. (Элементы не нужны, например, если они достаточно далеко от экрана, что их отображение не является неминуемым.) Это поведение соответствует значению RetainElement. По соображениям производительности, скорее всего, поведение по умолчанию будет изменено RecycleElement в будущем выпуске. В то же время разработчики приложений должны указывать RecycleElement при создании нового представления списка по соображениям памяти и производительности.
Преимущество RecycleElement производительности настолько велико, что разработчики приложений были предоставлены ярлыком синтаксиса XAML для инициализации представлений списка. x:TypeArguments
Вместо синтаксиса, указывающего параметр конструктора, XAML для ListView(ListViewCachingStrategy) Microsoft.Maui.Controls предоставляет атрибут XAML для несуществующего свойства, соответствующего аргументу стратегии кэширования конструктора. Разработчики приложений могут задать CachingStrategy
атрибут для любого из RecycleElement
(предпочтительных) или RetainElement
значений, чтобы выбрать стратегию кэширования. Например:
<ListView CachingStrategy="RecycleElement" >
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<!-- ... -->
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Примечание. Если разработчики указывают RecycleElement, OnElementChanged
события не вызываются при перезапуске ячеек. Вместо этого ячейка сохраняется и его значения свойств изменяются при обновлении контекста привязки до доступной ячейки, OnElementPropertyChanged
возникают события. Разработчики приложений должны слушать правильные события, и следует отметить, что их отрисовщики должны быть обновлены, если поведение по умолчанию изменится RecycleElement в будущем выпуске.
Примечание. Платформа UWP игнорирует RetainElement, так как она всегда использует кэширование для повышения производительности. Таким образом, если разработчик решил не использовать привязки данных, они должны использовать OnBindingContextChanged() для обновления данных ячейки в UWP, так как он всегда ведет себя так, как если RecycleElement бы он был указан.