在WPF平台,Component提供了两大控件:C1DataGrid和C1FlexGrid。
很多用户在初始进行选择的时候,常常存在疑惑:这两个控件该选择哪个?
本文就来阐述两者之间的差异,每个的优势以及为什么要选择其中一个控件。
首先ComponentOne DataGrid在Silverlight和WPF平台下非常强大,它的对象模型是基于微软标准的DataGrid控件。这样对于他来说,如果使用者需要额外的功能,比如内置的过滤,分组、分层的支持或是其他的功能,可以很容易的移植到C1DataGrid控件。
ComponentOne FlexGrid是一个简单和轻量级的控件,使用较容易的对象模型,同样的在非绑定模式下含有特定的功能。简单的单元格合并、多行多列标题等等。在WinForm平台下,这是一个很受欢迎的表格控件,这也是为什么将它使用在WPF/Silverlight平台的版本。
你可以通过自己的需求挑选最好的表格,主要区别如下:
1.C1DataGrid遵循微软DataGrid的对象模型,而C1FlexGrid遵循Flexgrid在WinForm平台下的对象模型。
2.C1DataGrid支持细节行,层次对象和内置的分组UI。C1FlexGrid支持非绑定在数量上比较轻量级。
功能对比:
| Supported Features | C1DataGrid | C1FlexGrid |
| RIA Services | check | check |
| Unbound data | check | |
| Excel-like filtering | check | check |
| Filter bar | check | |
| Drag-and-drop grouping | check | |
| Subtotals | check | check |
| Auto-size columns | check | check |
| Column and row freezing | check | check |
| Deferred scrolling | check | |
| Multiple selection modes | check | check |
| Multi-row column headers | check | check |
| Cell merging | check | check |
| Checkbox column | check | check |
| Combobox column | check | check |
| DateTime picker column | check | |
| Hyperlink column | check | |
| Add new row | check | |
| Custom rows | check | |
| Custom cells | check | |
| Hierarchical grid | check | |
| Paging | check | |
| Printing | check | check |
| Export to Excel | check | check |
| Clipboard | check | check |
| ClearStyle | check | |
| Toolkit themes | check | check |
| Silverlight/WPF compatibility | check | check |
| Size | < 700 KB | < 150 KB |
在Silverlight&WinForms下的区别:
在C1FlexGrid for silverlight,大量的根节点的内容和旧版本一致。例如,你可以简单的通过名字获取列(例如, c1lfexgrid.Columns["columnName"]),而且获取单元格也很简单,通过index(例如, c1flexgrid[rowIndex, columnIndex]。它没有DataSoruce属性,但是有ItemsSource属性,在Silverlight和WPF平台下是保持一致的。
C1DataGrid主要功能:
-
分组和总数
C1DataGrid支持拖拽分组。将一个列标题拖到表格上方区域就可以分组数据,也可以自动生成可扩展和可折叠的结点,还可以在分组后的标题中显示计算聚合函数或总数。
-
条件过滤
默认情况下,C1DataGrid支持条件过滤。此种过滤类似于Excel在每一列上的下拉菜单,允许用户创建一个过滤条件。
-
-
顶部和底部行模板
使用C1DataGrid的顶部和底部行模板,您可以轻松为表格创建和添加自定义的行。例如,您可以设计自己的过滤器和总数行,将它们嵌入任意的UIElements。 -
RowDetails和分层支持
C1DataGrid还支持一个RowDetails模板,可以将UIElements嵌入到每一行的可折叠部分。例如,嵌入到另一个DataGrid,您可以为显示分层数据创建一个主从复合结构表格。
C1FlexGrid主要功能:
-
快速轻量
FlexGrid因快速和轻量著名,当然它还有其他流行的功能。滚动、调整大小、扩展、折叠、编辑,每个操作都非常快!FlexGrid使用完整的UI虚拟化和智能虚拟管理达到了最佳性能。它被证实在加载数据和滚动时有3到10倍的速度。但不要相信我们的话,欢迎您亲自体验比较。在服务器端数据虚拟功能方面,我们还包括了C1DataSource组件,它与FlexGrid for WPF能够很好地相互配合使用。
-
绑定或取消绑定
您可以将FlexGrid绑定至任何实例化的IEnumerable,或直接与一个对象列表绑定。除了数据绑定,FlexGrid还可以应用到非绑定模式。使用控件WinForms版本的常见语法能轻松为表格添加行和列。当取消绑定时,表格在内部存储数据。
如果你对这两个控件感兴趣,可以到如下地址下载。
C1DataGrid下载地址:http://www.grapecity.com.cn/developer/download.aspx?pid=6
C1FlexGrid下载地址:http://www.grapecity.com.cn/developer/download.aspx?pid=6
如果有问题,可以到官方论坛发帖:http://gcdn.grapecity.com.cn/showforum-138.html