转至元数据结尾
转至元数据起始

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内容区域单元格(可滚动区域)相同的技术自定义以及填充行头和列头。


  • 无标签