C1FlexGrid 被设计用来和ICollectionView数据源配合使用,充分利用其提供的功能。
 但是它也可以工作在非绑定模式。如果您仅向Grid添加行和列,则您可可以通过下面所示熟悉的索引表示法获取或设置单元格的值:
C#
// 为非绑定模式的Grid添加行和列 for (int i = 0; i < 20; i++)
 { fg.Columns.Add(new Column());
 } for (int i = 0; i < 500; i++)
 { fg.Rows.Add(new Row());
 }
 // 填充非绑定Grid
 for (int r = 0; r < fg.Rows.Count; r++)
 { for (int c = 0; c < fg.Columns.Count; c++)
 
{ fg[r, c] =
string.Format(
"cell [{0},{1}]"
, r, c);
 }
 } 
 索引表示法应当也是C1FlexGrid用户所熟悉的。这是和该控件的WinForms版本所实现的同样的表示方法。可以指定行和列索引、行索引和列名称、或行索引和列对象指定单元格。
 索引表示法针对绑定和非绑定模式同样有效。在绑定模式中,将获取或者应用位于数据源中各个项目的数据。在绑定模式下,数据是由Grid内部存储。
 WinForms 以及Silverlight及WPF版本C1FlexGrid控件之间一个最重要的区别在于,该控件的WinForms版本,索引包含固定的行和列。在Silverlight及WPF版,固定的行和列不包括在内。
 下图显示了在Grid的WinForms版本中,单元格索引的方案:
 
 新的标注方式使得索引更加容易使用,因为索引将匹配数据项的索引值(第零行包含索引值为零的项),同时列数匹配显示的属性个数。
 唯一的缺点是,您需要一种新的方法来访问固定的单元格的内容,而不是使用标准的索引方案。这种新的方法由额外的叫做RowHeaders以及ColumnHeaders的属性组成。
 这些属性返回一个GridPanel类型的对象,该对象可以被看作具有其行和列的集合的"子-Grid"。
 例如,您可以使用以下代码来自定义行标题:
C#
// 获得Grid的行标题
 GridPanel rh = fg.RowHeaders;
 // 向Grid添加一个新的固定列
 rh.Columns.Add(new Column());
 // 设置宽度和行标题内容
 for (int c = 0; c < rh.Columns.Count; c++)
 {
 //该列的宽度
 
rh.Columns[c].Width = 60;
 for (int r = 0; r < rh.Rows.Count; r++)
 {
 // 该单元格的内容
 
rh[r, c] =
 string.Format("hdr {0},{1}", r, c);
 }
 } 
 注意这里GridPanel类提供了和主Grid一样的Rows和Columns集合,并支持一样的索引表示法。您可以使用和操作 Grid内容区域单元格(可滚动区域)相同的技术自定义以及填充行头和列头。
