DirectSurface UIDirectSurface UI
开始使用
文档/性能与调试

大表格性能

大表格性能的核心是:数据模型可以很大,但布局、绘制、命中测试和编辑器同步必须限制在可视区域附近。

关键策略

  • 行虚拟化。
  • 列宽缓存。
  • 分组缓存。
  • 当前单元格和选区状态独立管理。
  • 复制选区时按需读取数据,不在绘制阶段展开。
  • 单元格 popup 编辑器按需创建。

滚动

GridView 应自己管理滚动条和可视范围。不要把 GridView 放进同方向的 RenderScrollViewer 中,否则滚轮事件、可视窗口和焦点同步都会变复杂。

列宽

自动列宽不能全量扫描所有行。推荐:

  • 限制采样行数。
  • 优先使用列定义宽度。
  • 对用户调整后的列宽持久化。
  • 大文本列使用 ellipsis 和 tooltip。

分组

分组数据要有缓存。展开/折叠时只重建可见行索引,不要复制所有原始行对象。

编辑

单元格编辑器只在当前编辑单元格存在。关闭编辑器时释放 popup、输入状态和临时上下文。

诊断指标

大表格建议暴露 debugState:

  • row count。
  • visible range。
  • painted row count。
  • scroll offset。
  • current cell。
  • selected ranges。
  • cache rebuild duration。

这些指标比单纯看 FPS 更容易定位问题。