百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

ComponentOne WPF平台下两大控件对决:C1DataGrid VS C1FlexGrid

liuian 2025-04-08 16:02 13 浏览

在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 FeaturesC1DataGridC1FlexGrid
RIA Servicescheckcheck
Unbound data check
Excel-like filteringcheckcheck
Filter barcheck
Drag-and-drop groupingcheck
Subtotalscheckcheck
Auto-size columnscheckcheck
Column and row freezingcheckcheck
Deferred scrollingcheck
Multiple selection modescheckcheck
Multi-row column headerscheckcheck
Cell mergingcheckcheck
Checkbox columncheckcheck
Combobox columncheckcheck
DateTime picker columncheck
Hyperlink columncheck
Add new rowcheck
Custom rowscheck
Custom cells check
Hierarchical gridcheck
Pagingcheck
Printingcheckcheck
Export to Excelcheckcheck
Clipboardcheckcheck
ClearStylecheck
Toolkit themescheckcheck
Silverlight/WPF compatibilitycheckcheck
Size< 700 KB< 150 KB

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版本的常见语法能轻松为表格添加行和列。当取消绑定时,表格在内部存储数据。

如果你对这两个控件感兴趣,可以到如下地址下载:

PS: 关于ComponentOne,这些产品你可以关注>>

本站文章除注明转载外,均为本站原创或翻译

相关推荐

GCI: Another key public good for international community

MembersofadelegationofhighschoolstudentsfromtheU.S.stateofWashingtonposeforaphotoa...

kube on kube 实现思路分享(kube-scheduler)

这里的kubeonkube,是指建立K8s元集群,纳管其他业务K8s集群,通过声明式API管理集群的创建、增删节点等。参考https://github.com/kubean-i...

China and India hold the key to a more inclusive global future

ByMayaMajueranLead:AsChinaandIndiamark75yearsofdiplomaticties,theircooperationcouldse...

日本真子公主的婚礼又要提上日程了吗?未婚夫:债务问题已解决

日本明仁天皇将于今年3月31日退位,德仁皇太子即将成为新一任的天皇。在平成时代最后的倒计时中,明仁天皇的孙女真子公主的婚事却又一次进入了人们的视野。(viaTheTelegraph)关注日本皇室的...

kratos源码分析系列(1)(kvm源码解析与应用 pdf)

https://github.com/go-kratos/kratos是b站开源的一个微服务框架,整体来看它结合grpc生态中的grpc-gateway,以及wire依赖注入和众多常用的trace,m...

【2.C#基础】6.循环语句(c#循环语句例子)

6.循环语句当需要多次执行同一个处理时,就需要用到循环语句。一般情况下,循环的流程图如下:6.1while循环C#中的while循环语句在给定的条件为真的情况下会重复执行目标语句。格式如下:...

使用 Google Wire 在 Go 中进行依赖注入

关注点分离、松耦合系统和依赖反转原则等概念在软件工程中是众所周知的,并且在创建良好的计算机程序过程中至关重要。在本文中,我们将讨论一个同时应用了这三个原则的技术,称为依赖注入。我们将尽可能地实践,更加...

用 Golang封装你的API(golang封装dll)
用 Golang封装你的API(golang封装dll)

每日分享最新,最流行的软件开发知识与最新行业趋势,希望大家能够一键三连,多多支持,跪求关注,点赞,留言。@头条创作挑战赛本文探讨了在用Golang封装你的API的过程以及几个不同的编程步骤。我做了一个非常有限的时间来证明如何为客户正在开...

2025-05-09 20:03 liuian

Terraform 实战 | 万字长文(terrify是什么意思中文)

Terraform是什么Terraform(https://www.terraform.io/)是HashiCorp旗下的一款开源(Go语言开发)的DevOps基础架构资源管理运维工具,可...

Go 语言入门:环境安装(go语言安装 window)

一、前言这里不同于其他人的Go语言入门,环境安装我向来注重配置,比如依赖包、缓存的默认目录。因为前期不弄好,后面要整理又影响这影响那的,所以就干脆写成文章,方便后期捡起。二、安装1.安装包htt...

Go语言进阶之Go语言高性能Web框架Iris项目实战-项目结构优化EP05

前文再续,上一回我们完成了用户管理模块的CURD(增删改查)功能,功能层面,无甚大观,但有一个结构性的缺陷显而易见,那就是项目结构过度耦合,项目的耦合性(Coupling),也叫耦合度,进而言之,模块...

如何将Go项目与Docker结合实现高效部署

在现代软件开发中,使用Docker部署应用程序已经成为一种标准实践。本文将深入探讨如何将Go项目与Docker结合,实现高效、可靠的部署过程。通过详细的步骤和丰富的示例,你将能够迅速掌握这一流程。准备...

五分钟轻松熟悉一个k8s Operator应用制作

简介:operator是一种kubernetes的扩展形式,可以帮助用户以Kubernetes的声明式API风格自定义来管理应用及服务,operator已经成为分布式应用在k8s集群部...

程序员的副业秘籍!一款可以快速搭建各类系统的后台管理系统

系统简介这是一个基于Gin+Vue+ElementUI(或ArcoDesign、AntDesign)的系统快速开发平台,采用了前后端分离,旨在帮助用户快速完成各类系统的基础功能搭建。平...

使用 Go 语言开发区块链钱包的项目目录结构设计

在开发区块链钱包时,项目的目录结构应该清晰、模块化,确保代码的可维护性和扩展性。基于Go的惯例,结合区块链钱包的功能需求,以下是一个较为合理的目录结构示例:1.目录结构blockchain-wa...