Richard.Ma 发表于 2024-1-5 10:00:43

给WPF FlexGrid的行头设置行号


有些用户的使用场景中,需要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();


最终的效果

页: [1]
查看完整版本: 给WPF FlexGrid的行头设置行号