有些用户的使用场景中,需要flexgrid在行头展示行号。这个行号需要一直保持不变。不随表格内数据的排序等等发生变化
FlexGrid本身没有提供这个功能,但是,flexgrid提供了通过重写CellFactory方式来自定义单元格,包括行头单元格也是可以用这种方式。
实现步骤:
1.自定义一个CellFactory,仅需要重写CreateRowHeaderContent方法(此方法会在绘制行头单元格时候使用),给绘制的边框中加上行号
- public class CustomCellFactory : CellFactory
- {
- public override void CreateRowHeaderContent(C1FlexGrid grid, Border bdr, CellRange rng)
- {
- if (rng.Column == 0)
- {
- bdr.Child = new TextBlock() { Text = rng.Row.ToString(),HorizontalAlignment= HorizontalAlignment.Center };
- }
- }
- }
复制代码
2.给grid的CellFactory属性设置为此类的实例化对象
- grid.CellFactory= new CustomCellFactory();
复制代码
最终的效果
|