关于 syncfusion-maui-datagrid
面向 .NET MAUI 开发者的 Syncfusion SfDataGrid 实现技能,用于在应用中展示和操作表格数据。内容覆盖编辑、排序、筛选、分页、导出及大数据集处理。
主要功能
- 01绑定多种数据源并配置列
- 02单元格编辑与数据验证
- 03排序、筛选、搜索和分组
- 04分页、虚拟化与增量加载
- 05导出 Excel 和 PDF
适用场景
- 01在 .NET MAUI 应用中构建数据表格
- 02编辑并验证表格中的数据
- 03筛选、分组并汇总记录
- 04将网格数据导出为 Excel 或 PDF
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ syncfusion/ maui-ui-components-skills --skill syncfusion-maui-datagrid安装后在 Claude Code 中输入/syncfusion-maui-datagrid确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/advanced-features.mdcolumn-operations.mdcolumns.mddata-validation.mdediting.mdexporting.mdgetting-started.mdgrouping-summaries.mdlocalization.mdmulti-row-view.mdpaging-virtualization.mdperformance-events.mdrow-operations.mdsearching.mdselection.mdsorting-filtering.mdstyling-customization.md详细介绍
实现 .NET MAUI DataGrid
全面介绍如何实现和自定义 Syncfusion .NET MAUI DataGrid(SfDataGrid)控件。本 DataGrid 以表格形式显示和处理数据,并支持列、编辑、排序、筛选、分组、汇总、分页和导出等功能。
何时使用此技能
在以下情况下使用此技能:
- 在 .NET MAUI 应用程序中显示表格数据
- 将数据源(IEnumerable、ObservableCollection、DataTable)绑定到网格
- 配置列(自动生成或手动定义)
- 实现单元格编辑和验证
- 添加排序、筛选或搜索功能
- 对数据分组并显示汇总/聚合结果
- 实现分页或增量加载
- 启用行操作(拖放、滑动、添加/删除)
- 将网格数据导出到 Excel 或 PDF
- 自定义网格外观和行为
- 优化大型数据集的性能
- 实现主从视图或自定义行模板
组件概述
SfDataGrid 是一款适用于 .NET MAUI 的高性能数据网格控件,提供以下功能:
核心功能:
- 多种数据绑定选项(IEnumerable、DataTable、动态对象)
- 自动生成或手动定义列
- 8 种以上列类型(Text、Numeric、Date、Checkbox、Image、ComboBox、Picker、Template)
- 支持验证的单元格内编辑
- 多列排序和筛选
- 可交互的分组和汇总
- 选择模式(Single、Multiple、None)
- 分页和数据虚拟化
- Excel 和 PDF 导出
- 高级视图(主从视图、记录模板)
NuGet 包: Syncfusion.Maui.DataGrid
文档和导航指南
入门和数据绑定
📄 阅读: references/getting-started.md
- 安装和 NuGet 包设置
- 在 MauiProgram.cs 中注册处理程序
- 基本 DataGrid 实现(XAML 和 C#)
- 创建数据模型和 ViewModel
- 使用 IEnumerable 和 ObservableCollection 进行绑定
- 使用 DataTable 和动态对象进行绑定
- 初始配置和入门步骤
列和列配置
📄 阅读: references/columns.md
- 自动生成列(AutoGenerateColumnsMode)
- 手动定义列
- 列类型(Text、Numeric、Date、Checkbox、Image、ComboBox、Picker、Template、TimePicker、Percent、Currency、CheckBoxSelector)
- 列属性(MappingName、HeaderText、Format、Width)
- Numeric 列的小数位数和最大位数(NumberDecimalDigits)
- 列大小调整和宽度选项
- 列可见性和顺序
- AutoGenerateColumnsMode 选项(None、Reset、ResetAll、RetainOld)
列操作
📄 阅读: references/column-operations.md
- 调整列大小(手动和自动适配,以及 OnMoved 与 OnTouchUp 模式)
- 拖放列(重新排序)
- 堆叠表头(多级列标题)
- 非绑定列(计算列/表达式列)
- 冻结窗格(冻结列)
- 悬停时突出显示列(AllowColumnHoverHighlighting)
- 悬停时突出显示表头单元格(AllowHeaderCellHoverHighlighting)
- 列自定义和事件
单元格编辑
📄 阅读: references/editing.md
- 启用编辑(AllowEditing、NavigationMode、SelectionMode)
- 控制列级编辑
- 编辑模式和触发方式(EditTapAction、LostFocusBehavior)
- 编辑器选择行为(SelectAll、MoveLast)
- 单元格编辑事件(BeginEdit、EndEdit、CellValueChanged)
- 以编程方式编辑
- 编辑期间使用 Enter 键和 Tab 键导航
- 撤销和重做功能(AllowUndoRedo、MaxUndoRedoActions、UndoRedoController)
数据验证
📄 阅读: references/data-validation.md
- 单元格值验证
- 行级验证
- 自定义验证逻辑
- 验证事件
- 错误处理和显示
- IDataErrorInfo 支持
排序与筛选
📄 阅读: references/sorting-filtering.md
- 单列和多列排序
- 自定义排序逻辑
- 以编程方式排序
- 排序图标和 UI 自定义
- 筛选基础知识和筛选类型
- FilterPopupStyle 和 FilteringPopupDisplayStyle(全屏或弹出式)
- 筛选行实现
- 以编程方式筛选
- 自定义筛选谓词
搜索
📄 阅读: references/searching.md
- 搜索功能设置
- 文本搜索和高亮
- 大小写敏感选项
- 搜索导航(下一个/上一个)
- 以编程方式控制搜索
- 内置搜索 UI
分组与汇总
📄 阅读: references/grouping-summaries.md
- 数据分组(单列和多列)
- 分组展开/折叠行为
- 自定义分组逻辑
- 自定义分组标题
- 自定义分组行高
- 汇总行(表、分组、标题汇总)
- 内置聚合函数(Sum、Average、Count、Min、Max)
- 自定义汇总计算
- 汇总显示格式
选择与导航
📄 阅读: references/selection.md
- 选择模式(Single、Multiple、SingleDeselect、None)
- 行和单元格选择
- 选择事件(SelectionChanging、SelectionChanged)
- 以编程方式选择
- 以编程方式导航(MoveToNextCell、MoveToPreviousCell、MoveToNextRow、MoveToPreviousRow)
- 当前单元格与选中项
- 键盘导航(Windows 平台)
分页与数据虚拟化
📄 阅读: references/paging-virtualization.md
- 与独立的
SfDataPager集成分页(单独的Syncfusion.Maui.DataPager包) - DataGrid + DataPager 绑定模式(
Source→PagedSource→ItemsSource) - 页面大小、页数和以编程方式进行页面导航
- 使用
UseOnDemandPaging和OnDemandLoading按需分页 - 加载更多(增量加载)
- 下拉刷新
- 用于提升性能的数据虚拟化
- 处理大型数据集
- 滚动到行和列
- 滚动方向(ScrollOrientation:Both、Vertical、Horizontal、Neither)
- 收缩适配行和列(ShrinkWrapRows、ShrinkWrapColumns)
注意:
SfDataPager控件作为单独的 NuGet 包(Syncfusion.Maui.DataPager)提供,并有专属技能(syncfusion-maui-datapager)。有关完整的分页器配置——按钮形状、大小、显示模式、省略号、方向、DataPagerStyle以及PageChanging/PageChanged事件——请参阅syncfusion-maui-datapager技能。本 DataGrid 技能涵盖 DataGrid↔DataPager 集成以及 DataGrid 专属的数据加载功能(加载更多、下拉刷新、虚拟化、滚动)。
行操作
📄 阅读: references/row-operations.md
- 自定义行高
- 自动行高(QueryRowHeight 事件)
- 行拖放(单行和多行)
- 行拖动动画(AllowDraggingRowAnimation)
- 行大小调整(OnMoved 与 OnTouchUp 模式、AllowResizingRows)
- 行滑动操作
- 以编程方式添加新行
- 删除行
- 非绑定行(顶部/底部的附加汇总行)
- 行级事件
导出与剪贴板
📄 阅读: references/exporting.md
- 导出到 Excel
- Excel 导出自定义(列、行、样式)
- Excel 导出选项和事件
- 导出到 PDF
- PDF 导出自定义
- 剪贴板操作(复制/粘贴)
- 自定义剪贴板格式
高级功能与视图
📄 阅读: references/advanced-features.md
- 主从视图(分层/关系型数据)
- 记录模板视图(自定义行布局)
- 空视图自定义
- 上下文菜单实现(支持分隔符)
- 动态加载上下文菜单(ContextMenuOpening 事件)
- 单元格工具提示(支持自定义延迟,TooltipDelay)
- 合并单元格
- 序列化(保存/加载网格状态)
- 按数据进行条件样式设置
多行列布局
📄 阅读: references/multi-row-view.md
- 将一条记录显示为多行(MultiRowViewDefinition)
- RowsCount 和 ColumnsCount 布局配置
- 列定位(Row、Column、RowSpan、ColumnSpan)
- 适用于包含许多字段的记录的卡片式布局
- 多行视图的限制
样式与自定义
📄 阅读: references/styling-customization.md
- 网格样式基础
- 单元格样式(CellStyle)
- 条件单元格样式
- 行样式和交替行颜色
- 标题样式
- 主题自定义
- 自定义单元格模板
- 液态玻璃效果
性能与事件
📄 阅读: references/performance-events.md
- 性能优化技巧
- 大型数据集最佳实践
- 内存管理策略
- 网格事件概览
- 常见事件场景
- 事件处理模式
- 性能监控
本地化
📄 阅读: references/localization.md
- 本地化设置
- 多语言支持
- RTL(从右到左)支持
- 滚动模式与优化