MAUI CollectionView怎么用 MAUI列表控件使用教程

来源:这里教程网 时间:2026-02-21 17:38:01 作者:

MAUI 的 CollectionView 是替代传统 ListView 的现代化列表控件,核心优势在于高性能(默认启用虚拟化)、灵活布局(线性/网格/分组)和原生跨平台一致性。用对关键点,不写多余代码也能跑得稳。

基础绑定与显示

只需三步就能让数据动起来:

在 XAML 中声明 CollectionView,并绑定
ItemsSource
(必须是
ObservableCollection<t></t>
或实现
INotifyCollectionChanged
的集合)
ItemTemplate
定义每项长什么样,推荐内联
DataTemplate
或提取为资源
后台代码中初始化集合并赋值给绑定源,确保设置
BindingContext

示例片段:






选中与交互控制

默认不响应点击,需显式开启选择能力:

SelectionMode
Single
(单选)或
Multiple
(多选),
None
是默认禁用状态
绑定
SelectedItem
(单选)或
SelectedItems
(多选)到 ViewModel 属性,支持双向绑定
监听
SelectionChanged
事件或绑定
SelectionChangedCommand
做后续逻辑

注意:选中项高亮样式由平台原生提供,无需额外写模板,除非你自定义了

Visual
或容器背景。

分组显示与空状态处理

真实业务常要分类展示或兜底提示:

启用分组:设
IsGrouped="True"
,数据源必须是
IEnumerable<tgroup></tgroup>
,其中
TGroup
继承
IList<titem></titem>
并带
Name
等分组标识属性
定义
GroupHeaderTemplate
控制每组标题外观,
GroupFooterTemplate
可选
空数据时用
EmptyView
——可以是纯文本字符串,也可以是完整布局(如图标+提示文字+按钮)

性能关键配置

大数据量下卡顿?重点检查这三项:

确认没手动关闭虚拟化:
ItemsLayout
不要设
ItemSizingStrategy="MeasureAllItems"
,保持默认
MeasureFirstItem
滚动时避免频繁刷新整个集合,改用
ObservableCollection<t></t>
Add
/
Remove
/
Move
方法做增量更新
图片类内容务必配合
FFImageLoading
或 MAUI 内置
Image
的缓存策略,禁用
CacheEnabled="False"

基本上就这些。不需要封装复杂基类,按需组合属性就能覆盖 95% 场景。

相关推荐