本文先容了,如何实现表格控件C1FlexGrid的CheckBox功能。
添加C1CheckBox作为C1FlexGrid的Editor首先设置数据源
数据源里有个Flag字段是String类型,显示Y,N。

然后数据绑定设置Editor
设置C1FlexGrid的Editor是C1CheckBox。
c1CheckBox1.DataSource = table1;this.c1FlexGrid1.Cols[3].Editor = c1CheckBox1;
接着设置C1CheckBox绑定到字符串
当数据源的数据类型是字符串的时候,利用TranslateValues来指定对应的值。
把稳:由于数据绑定的时候Text的显示无法对应,以是通过CheckedChanged事宜做了同步。
效果如图:
绑定模式添加CheckBox列以及选择
在列头添加CheckBox
通过CellFactory功能给ColumnHeader添加CheckBox。
为了添加到列头,须要重写CreateColumnHeaderContent,然后判断ColumnHeader的单元格是布尔类型,就设置CheckBox。
如果要让CheckBox列的内容也是显示CheckBox,还须要重写CreateCellContent,判断是布尔类型,然后设置checkbox。
代码逻辑和列头设置CheckBox同等。
添加非绑定布尔类型列
通过Columns.Insert方法添加一个布尔类型的列在最左边。
代码参考:
Column c = new Column();
初始化布尔类型值
初始化的时候设置该列的值是false
代码参考:
_fgBound.ColumnHeaders[0, 0] = false;
选择和反选
当选择/不选择列头的CheckBox的时候,该列的所有行的checkbox会做同步,这个时候就须要在重写的CreateColumnContent添加事宜的处理。
当列头的CheckBox当选中或不选的时候,触发该事宜,然后循环选择该列所有行。
效果如图:
列头中添加CheckBox功能
功能哀求:
当对列头中的CheckBox进行选中操作时,这一列中所有的CheckBox将当选中
当对列头中的CheckBox进行不选中操作时,这一列中所有的CheckBox将不当选中
当这一列中所有CheckBox都当选中时,列头中的CheckBox也该当是选中状态
当这一列中所有CheckBox都不当选中时,列头中的CheckBox也该当是不选中状态
第一步:设置数据源
我们以个人信息作为FlexGrid的数据源
第二步:设置XAML中FlexGrid各个列的数据绑定信息
第三步:实现选择/不选择的行为
为了在boolean类型的列中添加CheckBox功能,须要实现用户自定义的C1.Silverlight.FlexGrid.CellFactory类,在CheckBox类型的列中,我们须要处理以下操作:
1. 选择/不选择列头中的CheckBox控件
2. 选择/不选择单元格中的CheckBox控件
下面的代码重写了CreateColumnHeaderContent方法,以此来创建列头中的CheckBox控件,并通过CheckBox的Click事宜来改变其选中和不选中状态:
以上便是实现表格控件C1FlexGrid的CheckBox功能的全部内容。
快人一步,免费试用试用ComponentOne,或理解金鸡献瑞ComponentOne 7折迎春活动,请通过以下办法联系我们:
微信:GrapeCityDT
邮件:marketing.xa@grapecity.com
官网:www.gcpowertools.com.cn
关于葡萄城葡萄城是环球最大的控件供应商,天下领先的企业运用定制工具、企业报表和商业智能办理方案供应商,为超过75%的环球财富500强企业供应做事。