首页 > 其他分享 >「对比评测」标准WPF DataGrid与DevExpress WPF GridControl有何不同?(一)

「对比评测」标准WPF DataGrid与DevExpress WPF GridControl有何不同?(一)

时间:2024-08-22 09:27:24浏览次数:11  
标签:DevExpress 绑定 有何 DataGrid WPF 排序 GridControl

DevExpress WPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件的衍伸产品,还是以数据为中心的商业智能产品,都能通过DevExpress WPF控件来实现。

本文主要介绍标准WPF DataGrid和DevExpress WPF GridControl之间的主要区别,以及如何使用它从标准WPF DataGrid迁移到DevExpress WPF GridControl。

获取DevExpress v24.1正式版下载

DevExpress技术交流群10:532598169      欢迎一起进群讨论

显示数据
标准WPF DataGrid

以表格格式显示数据,若要配置数据表示,请自定义控件和列对象。

DevExpress WPF GridControl

使用三种类型的视图显示数据,要配置数据表示,请自定义View和column对象:

  • TableView
  • CardView
  • TreeListView
  • GridColumn
绑定数据

标准WPF DataGrid和DevExpress WPF GridControl使用相同的属性绑定到数据ItemsSource。

标准WPF DataGrid

列使用Binding或SelectedItemBinding属性绑定到数据,DataGridTemplateColumn定义了单元格模板内的数据绑定。

DevExpress WPF GridControl

列使用FieldName和Binding属性绑定到数据。

Binding属性使用标准绑定机制,FieldName使用PropertyDescriptor对象,性能优于Binding属性。

不能使用FieldName属性将列绑定到集合属性,要在GridControl单元格中显示这样的属性,可以使用以下任何一种技术:

  • 将应用程序模型中的字段类型从集合更改为对象。
  • 使用Binding属性。

GridControl使用FieldName属性来标识列,当您使用Binding属性时,将自动设置FieldName属性。

未绑定列

标准WPF DataGrid

将DataGridTemplateColumn添加到列集合中,要在此列中显示数据,覆盖其CellTemplate属性并指定一个数据字段。

DevExpress WPF GridControl

指定一个基于现有数据字段计算值的ColumnBase.UnboundExpression,你也可以处理GridControl.CustomUnboundColumnData / TreeListView.CustomUnboundColumnData事件来存储未绑定列的值。

对数据进行排序、分组和筛选

标准WPF DataGrid本身不处理数据操作,相反它将它们委托给绑定的ICollectionView。

DevExpress WPF GridControl可以自己执行数据操作,要对数据进行排序、分组和筛选,不需要将其绑定到ICollectionView后代。

运行时功能

标准WPF DataGrid在运行时不支持排序、分组和筛选操作。

DevExpress WPF GridControl允许用户以几种方式执行这些操作。

排序

执行以下操作当中的一个对列进行数据排序:

  • 单击列的标题
  • 调用列的上下文菜单并单击“升序排序”、“降序排序”或“清除排序”。

要清除排序顺序,请执行以下操作当中的一个:

  • 按CTRL键并单击列的标题。
  • 从列的标题上下文菜单中选择“Clear Sorting ”。
DevExpress WPF中文教程图集

GridControl支持同时按多个列排序。

分组

执行以下操作当中的一个对View数据进行分组:

  • 将列标头从列标头面板拖到组面板。
  • 调用列的上下文菜单并单击Group By This column。

要取消视图的分组,请执行以下操作当中的一个:

  • 将列标头从“组”面板拖到“列标头面板”。
  • 调用列的上下文菜单并单击Ungroup。
DevExpress WPF中文教程图集

还可以更改列的排序顺序。

未完待续,更多内容下期见......

标签:DevExpress,绑定,有何,DataGrid,WPF,排序,GridControl
From: https://www.cnblogs.com/AABBbaby/p/18373045

相关文章

  • WPF:MVVM的由来与属性绑定的过程
    WPF:MVVM的由来与属性绑定的过程1、MVVM(1)MVVM是什么?​ MVVM(Model-View-ViewModel)是一种软件架构设计模式MVVM模式。有助于分离应用程序的业务逻辑和用户界面层,使得开发过程更易于管理,同时也便于单元测试。Model?现实世界中对象的抽象结果。View?View=UI。ViewModel?Vie......
  • 【WPF】WPF项目.exe可执行文件在非开发环境打不开
    如题,做一个小工具,开发完之后把bin/release文件夹打包发他,但在他电脑打不开。打开可靠性监视器:按下Win+S,在搜索栏中输入“控制面板”,然后点击进入。在控制面板中选择“系统和安全”。然后选择“安全与维护”。在“安全与维护”窗口中,展开“维护”部分,并点击“查看可靠性......
  • 界面控件DevExpress WinForms中文教程:Data Grid(数据网格)简介(二)
    DevExpressWinFormsDataGrid是一个高性能的UI组件,由DirectX渲染引擎提供支持。数据网格(GridControl)提供了一个灵活的基于视图的体系结构,包括许多数据塑造和UI自定义特性,数据网格可以显示和编辑来自任何大小和复杂数据源的数据。P.S:DevExpressWinForms拥有180+组件和UI库,能......
  • WPF:静态、动态资源以及资源词典
    WPF:静态、动态资源以及资源词典静态资源与动态资源我们常常会使用样式或者控件模板放在Window.Resources中,比如这样:静态资源与动态资源使用如下:<Window.Resources><SolidColorBrushx:Key="SolidColor"Color="#FF0000"/></Window.Resources><Grid><StackPanel......
  • WPF:数据模板
    WPF:DataTemplate在XAML界面当中编写的任何代码,其实本质上都是转化成C#代码,既然如此来说,只要XAML有的对象,我们都可以用C#代码编写,但是为什么一般我们不这么做,是因为XAML更加容易去表达界面上的元素,代码的可视化以及可维护性。需求:当我想要在ListBox或者DataGridView......
  • GPT-5 一年半后发布?对此你有何期待?
    GPT-5一年半后发布?对此你有何期待?IT之家6月22日消息,在美国达特茅斯工程学院周四公布的采访中,OpenAI首席技术官米拉·穆拉蒂被问及GPT-5是否会在明年发布,给出了肯定答案并表示将在一年半后发布。此外,穆拉蒂在采访中还把GPT-4到GPT-5的飞跃描述为高中生到博士生的成长。“像GP......
  • WPF中的视觉树(VisualTree)和逻辑树(LogicalTree)
    可视化树和逻辑树我们先来理解一下什么是可视化树和逻辑树。通俗点来说,可视化树就是在XAML中定义的或者代码添加的元素组成的树。就像下面这样1<Grid>2<ButtonHorizontalAlignment="Center"VerticalAlignment="Center"Content="点击我"Click="Button_Click"><......
  • 界面控件DevExpress Blazor v24.2路线图预览——支持.NET 9、新增桑基图等
    DevExpress BlazorUI组件使用了C#为BlazorServer和BlazorWebAssembly创建高影响力的用户体验,这个UI自建库提供了一套全面的原生BlazorUI组件(包括PivotGrid、调度程序、图表、数据编辑器和报表等)。本文中包含了DevExpressBlazorv24.2官方发布的当前/预计的开发计划,请注意......
  • WPF Window窗体隐藏标题栏
    一、Window窗体隐藏标题栏1.当想弹出一个窗口的时候,一般会使用ShowDialog()方法,但是Page和UserControl页面没有ShowDialog()方法,那就只能用Window界面,但某些窗口不需要标题栏。使用以下代码隐藏标题栏,同时把标题栏高度设置为0。CaptionHeight属性不为0时,标题栏......
  • SimpleRAG:基于WPF与Semantic Kernel实现的一个简单的RAG应用
    SimpleRAG介绍SimpleRAG是基于WPF与SemanticKernel实现的一个简单的RAG应用,可用于学习与理解如何使用SemanticKernel构建RAG应用。GitHub地址:https://github.com/Ming-jiayou/SimpleRAG主要功能AI聊天支持所有兼容OpenAI格式的大语言模型:文本嵌入支持所有兼容OpenAI格式......