1、第一种:使用CellFactory首先需要展示行头,然后通过设置CellFactory实现。代码参考:// turn on row headersc1FlexGrid1.HeadersVisibility = HeadersVisibility.All;//add row header columnc1FlexGrid1.RowHeaders.Columns.Add(new Column());// set CellFactoryc1FlexGrid1.CellFactory = new MyCellFactory();
2、其次,重写Cell factory。通过Text设置序号,并且通过HorizontalAlignment和VerticalAlignment属性设置居中显示。代码参考:public class MyCellFactory : CellFactory{// static fields static Thickness _thicknessEmpty = new Thickness(0);public override void CreateRowHeaderContent(C1FlexGrid grid, Border bdr, CellRange rng){// first column contains numbersif (rng.Column == 0){var tb = new TextBlock();tb.HorizontalAlignment = HorizontalAlignment.Center;tb.VerticalAlignment = VerticalAlignment.Center;tb.Text = string.Format("{0}", rng.Row + 1);bdr.Padding = _thicknessEmpty;bdr.Child = tb;}}}添加的序号如图,居中显示:

3、第二种方法:循环设置通过代码循环flexgrid的每一行,然后给行头设置序号。代码参考:for (int i = 0; i < c1FlexGrid.Rows.Count; i++){c1FlexGrid.RowHeaders[i, 0] = _vm.PageSize * (_vm.PageIndex - 1) + i + 1;}