CollectionView

Browse sample.浏览示例

.NET Multi-platform App UI (.NET MAUI) CollectionView 是使用不同的布局规范呈现数据列表的视图。 它旨在为 ListView 提供一种更灵活、更高性能的替代方案。

以下屏幕截图显示使用两列垂直网格并允许进行多重选择的 CollectionView

Screenshot of a CollectionView vertical grid layout.

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

CollectionView 和 ListView 差异

虽然 CollectionViewListView API 相似,但存在一些显著差异:

从 ListView 移动到 CollectionView

可借助下表将 ListView 实现迁移到 CollectionView 实现:

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