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 指定的行为,也缓存 DataTemplateSelector 所选择的 DataTemplate 对象。

注解

应用程序开发人员可以在构造一个 ListView 值时指定这些值之一,以确定列表视图是否会通过回收列表单元格来最大程度地减少其内存占用量和执行速度,或者改为为列表中的每一项生成一个单元格。 目前,默认行为是在不需要项数据时保留其生成的单元格中的项数据。 (例如,当项目离屏幕足够远时,它们的显示迫在眉睫时不需要。此行为对应于值 RetainElement。 出于性能原因,默认行为可能会在未来版本中更改为 RecycleElement 。 同时,出于内存和性能原因,应用开发人员应在构造新的列表视图时指定 RecycleElement

性能优势 RecycleElement 非常出色,因此应用程序开发人员已提供用于初始化列表视图的 XAML 语法快捷方式。 x:TypeArguments XAML for Microsoft.Maui.Controls 提供与构造函数的缓存策略参数相对应的不存在属性的 XAML 属性,而不是指定ListView(ListViewCachingStrategy)构造函数的参数的语法。 应用程序开发人员可以将属性设置为 CachingStrategy RecycleElement (首选)或 RetainElement 值以选择缓存策略。 例如:

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

注意:当开发人员指定 RecycleElement时, OnElementChanged 在回收单元格时不会引发事件。 相反,当绑定上下文更新到可用单元格的绑定上下文时,将保留单元格及其属性值更改, OnElementPropertyChanged 则会引发事件。 应用程序开发人员应记住侦听正确的事件,并应注意,如果默认行为在将来版本中更改为 RecycleElement ,则需要更新其呈现器。

注意:UWP 平台将 RetainElement忽略,因为它始终使用缓存来提高性能。 因此,如果开发人员已选择不使用数据绑定,则必须使用 OnBindingContextChanged() 它们来更新 UWP 上的单元格数据,因为它的行为始终与指定一 RecycleElement 样。

适用于