CollectionView

浏览示例。 浏览示例

.NET 多平台应用 UI(.NET MAUI) CollectionView 是一种视图,用于显示使用不同的布局规范的数据列表。 它旨在提供更灵活、更高性能的 ListView替代方法。

以下屏幕截图显示了一个 CollectionView 使用双列垂直网格并允许进行多个选择的屏幕截图:

CollectionView 垂直网格布局的屏幕截图。

CollectionView 应用于显示需要滚动或选择的数据列表。 当要显示的数据不需要滚动或选择时,可以使用可绑定布局。 有关详细信息,请参阅 BindableLayout

注释

在 iOS 和 Mac Catalyst 上,在 .NET 9 中可选的优化处理程序是 .NET 10 中的默认处理程序 CollectionView ,可提供改进的性能和稳定性。

还原为 .NET 9 行为

建议使用新处理程序, CollectionView但如果想要选择退出此行为并还原回 .NET 9 处理程序,则可以在代码 MauiProgram.cs中使用以下代码。

#if IOS || MACCATALYST
builder.ConfigureMauiHandlers(handlers =>
{
    handlers.AddHandler<Microsoft.Maui.Controls.CollectionView, Microsoft.Maui.Controls.Handlers.Items.CollectionViewHandler>();
});
#endif

CollectionView 和 ListView 差异

CollectionView虽然 API ListView 类似,但存在一些显著差异:

从 ListView 移动到 CollectionView

ListView 可通过下表的帮助将实现迁移到 CollectionView 实现:

概念 ListView API CollectionView
Data ItemsSource 通过设置数据ItemsSource属性填充 ACollectionView。 有关详细信息,请参阅 使用数据填充 CollectionView
项外观 ItemTemplate CollectionView通过将属性设置为 ItemTemplate aDataTemplate. 有关详细信息,请参阅 “定义项”外观
细胞 TextCellImageCellViewCell CollectionView 没有单元格的概念,因此没有披露指标的概念。 相反,数据模板用于定义列表中每个数据项的外观。
行分隔符 SeparatorColorSeparatorVisibility CollectionView 不包括内置分隔符。 如果需要,可以在项模板中提供这些内容。
选择 SelectionModeSelectedItem CollectionView 支持单选和多选。 有关详细信息,请参阅 配置 CollectionView 项选择
行高 HasUnevenRowsRowHeight 在 a 中 CollectionView,每个项的行高由 ItemSizingStrategy 属性确定。 有关详细信息,请参阅 项大小调整
Caching CachingStrategy CollectionView 自动使用基础本机控件提供的虚拟化。
页眉和页脚 HeaderHeaderElementHeaderTemplateFooterFooterElementFooterTemplate CollectionView可以通过 和属性显示一个页眉和页脚,该页眉和FooterTemplate页脚随列表中的HeaderTemplateHeaderFooter项一起滚动。 有关详细信息,请参阅 页眉和页脚
Grouping GroupDisplayBindingGroupHeaderTemplateGroupShortNameBindingIsGroupingEnabled 通过将其 属性设置为 来显示正确分组的数据。 可以通过将组页眉和组页脚设置为GroupHeaderTemplateDataTemplate对象来自定义组页眉和GroupFooterTemplate组页脚。 有关详细信息,请参阅 在 CollectionView 中显示分组数据
下拉以刷新 IsPullToRefreshEnabledIsRefreshingRefreshAllowedRefreshCommandRefreshControlColorBeginRefresh()EndRefresh() 将拉取刷新功能设置为 /> 的子级支持。 有关详细信息,请参阅 “拉取”刷新
上下文菜单项 ContextActions 上下文菜单项通过设置一个 SwipeView 作为根视图来支持,该视图 DataTemplate 定义每个数据项的外观 CollectionView。 有关详细信息,请参阅 上下文菜单
滚动 ScrollTo() CollectionView ScrollTo定义将项滚动到视图中的方法。 有关详细信息,请参阅 CollectionView 中的控件滚动