diff --git a/.agents/skills/datagridex/SKILL.md b/.agents/skills/datagridex/SKILL.md new file mode 100644 index 0000000..79682a1 --- /dev/null +++ b/.agents/skills/datagridex/SKILL.md @@ -0,0 +1,62 @@ +--- +name: datagridex +description: DataGridEx WPF 表格控件的能力与用法,涵盖分页、行选择、序号、列显隐、自定义操作栏与分页栏、加载动画、排序和图片列。需要了解或配置 DataGridEx 时使用。 +--- + +# DataGridEx + +DataGridEx 继承 WPF DataGrid,提供以下能力。属性默认值和配置示例见 [references/usage.md](references/usage.md)。 + +## 行选择与序号 + +- 行头复选框与独立序号列,可分别显示或隐藏。 +- 表头支持全选、未选和部分选中的三态显示;全选范围是当前 ItemsSource/视图。 +- 点击行尾空白可选中对应行;支持行头点击切换选择、可选的右键选中和行菜单。 +- SelectedItems 支持绑定可增删集合,集合内增删与表格选择双向同步。使用 OneWay 绑定集合引用,无需属性 setter;不支持只读或固定大小集合。 +- 序号自动创建,按当前显示顺序和分页偏移计算,排序与行回收后更新。 +- 选中行背景与前景可配置。 + +## 分页 + +- 首页、上一页、下一页、末页、页大小选择、当前页和总记录数。 +- PageIndex、PageSize 支持绑定;翻页通过 PageChangedCommand 发出 DataGridPageRequest(PageIndex, PageSize)。 +- 换页或改变页大小清空选择;改变页大小回到第一页,总数减少时自动调整到有效页码。 +- 调用方提供当前页数据和总数;控件不请求数据,也不再次切分 ItemsSource。 +- ShowPagination 控制分页栏显隐。隐藏时仍保留分页状态;不分页时保持 PageIndex=1。 + +## 列与排序 + +- 支持原生 DataGrid 列类型和自定义模板列,列放在 DataGridEx.Columns 中。 +- 内置列设置面板,勾选后立即显示或隐藏列。 +- CanHideColumn=False 可将业务列设为固定显示;复选框与序号使用各自开关。 +- 列显示设置不持久化,没有额外的右侧冻结实现。 +- 支持表头排序,排序图标位于列右侧;默认仅对当前数据源排序。 +- 服务端全量排序由调用方处理 Sorting 事件并重新查询。 + +## 自定义内容 + +- ShowToolbar 控制操作栏显隐,ShowColumnSettings 控制列设置按钮。 +- ToolbarContent 自定义操作栏中间区域,保留选择提示和列设置按钮。 +- PaginationContent 替换整个分页栏;未设置或为 null 时使用默认分页栏。 +- 两个内容槽均继承调用方 DataContext,可放置按钮、统计文字和业务布局。 + +## 加载与空数据 + +- IsLoading 控制加载遮罩及不确定进度动画,LoadingText 配置提示文字。 +- 加载期间禁用表格、操作栏和分页栏,结束后恢复;不控制表格外部控件。 +- NoDataTips 配置空数据提示,IsActive 可抑制空数据提示,与 IsLoading 分开控制。 +- 加载状态由调用方设置,控件不推断请求开始、完成或失败。 + +## 图片列与虚拟化 + +- DataGridExImageColumn 支持图片地址绑定、占位图绑定及 ElementStyle。 +- 默认图片尺寸 58×58,Stretch=Uniform。 +- 可见单元格按需加载图片,行回收时取消旧请求,避免旧图片覆盖新行。 +- 支持图片缓存,以及拖动滚动条期间暂停图片加载、停止后恢复。 +- 启用行/列虚拟化和容器回收。 + +## 集合视图支持 + +ItemsSource 可绑定 ICollectionView。调用方可使用独立 ListCollectionView,通过 Filter 和 Refresh 实现当前页实时筛选并保留视图排序。 + +搜索输入框、匹配规则、后台查询、异步取消和跨页全部选择不属于控件内置能力。 \ No newline at end of file diff --git a/.agents/skills/datagridex/references/usage.md b/.agents/skills/datagridex/references/usage.md new file mode 100644 index 0000000..e7ef0f5 --- /dev/null +++ b/.agents/skills/datagridex/references/usage.md @@ -0,0 +1,97 @@ +# DataGridEx 调用与属性 + +## 常用接入 + +以下绑定属性由调用方 ViewModel 提供,controls 表示 DataGridEx 所在命名空间。 + +~~~xml + + +