首页 > 其他分享 >DevExpress WPF中文教程:如何解决排序、过滤遇到的常见问题?(一)

DevExpress WPF中文教程:如何解决排序、过滤遇到的常见问题?(一)

时间:2024-09-05 10:13:58浏览次数:4  
标签:常见问题 ColumnBase DevExpress 绑定 WPF 排序 GridControl 属性

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

接下来将介绍如何解决DevExpress GridControl中排序和过滤操作最常见的问题。

获取DevExpress v24.1正式版下载

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

排序和过滤不起作用

如果在DevExpress GridControl中排序或过滤不起作用,请检查以下可能导致的原因。

GridColumn绑定到一个复杂对象

问题

DevExpress WPF GridControl可以对支持比较操作符的类型进行排序和过滤,这意味着支持在网格单元格中显示的大多数类型,一些示例是int, string, DateTime和decimal。

另一方面,DevExpress GridControl不能比较复杂的或自定义类型(如MyClass),除非您覆盖该类型的比较操作符。

解决方案

使用以下解决方案当中的一个:

  • 将列绑定到复杂类型的嵌套属性。
    ColumnBase.FieldName中使用点来指定单个嵌套属性的复杂路径:

XAML

<dxg:GridColumn FieldName="Customer.Name"/>

使用Bands在一个标题下显示多个嵌套属性。

GridColumn绑定到一个集合

问题

DevExpress GridControl不能比较集合,对绑定到集合类型的列禁用排序。

解决方案

确保列绑定到数据源字段。

使用以下解决方案当中的一个:

使用GridColumnBinding且第一行的Bound属性为Null

问题

如果列使用ColumnBase.Binding属性获取数据,DevExpress GridControl将检查第一行以确定属性类型。如果第一行中的字段值为空,则DevExpress GridControl无法生成属性描述符。

如果列使用ColumnBase.FieldName属性并且绑定的属性类型是object,则可能出现类似的问题。

解决方案

要让DevExpress GridControl知道实际的列类型,可以设置ColumnBase.UnboundDataType属性。如果使用ColumnBase.FieldName属性绑定列,请使用绑定,然后设置UnboundDataType。

XAML

xmlns:sys="clr-namespace:System;assembly=mscorlib"
<dxg:GridColumn Binding="{Binding SomeProperty, Mode=TwoWay}" UnboundDataType="{x:Type sys:String}"/>

服务器模式与未绑定列一起使用

问题

使用GridControl.CustomUnboundColumnDataGridControl.CustomUnboundColumnDataCommand填充值的未绑定列不能在服务器模式下排序或过滤。

解决方案

使用ColumnBase.UnboundExpression属性填充列。

注意:使用ColumnBase.Binding属性填充的列将作为未绑定处理,因为绑定可以包含自定义转换器。

使用虚拟资源

问题

如果使用虚拟源,则排序和过滤不起作用。

解决方案

要在虚拟源中启用排序和过滤,请按照下面帮助主题中描述的步骤操作:

数值按字符串排序/过滤

问题

DevExpress GridControl将数值作为字符串进行排序和过滤,发生此操作是因为ColumnBase.ColumnFilterMode被设置为DisplayText。

解决方案

ColumnBase.ColumnFilterMode设置为Value。

标签:常见问题,ColumnBase,DevExpress,绑定,WPF,排序,GridControl,属性
From: https://www.cnblogs.com/AABBbaby/p/18397838

相关文章

  • 不信你没返工过,这些PCB常见问题为什么就是逃不过?
    在后台曾有工程师朋友留言过他们在PCB设计中所碰到的一些问题,一不注意就会出现废板返工现象,成本升高。那么,今天就与品质大佬一起对一些常见问题进行解答,大家能够提前避免这些问题所带来的麻烦!Q:最小孔径0.15mmA:在机械加工中孔径过小会影响生产良率与时效建议:机械通孔孔径......
  • 常见问题解决 --- 如何给一个不支持配置代理的程序抓取https流量数据
    比如我有一个C#编写票务系统,它内嵌浏览器功能,我想抓取它的流量,但是这个客户端不支持配置代理设置解决办法:1.安装配置proxifier开启全局代理服务。安装好后网上有激活码激活一下,点击profile-proxyserver,添加一个代理服务器127.0.0.1,端口8080,协议https。点击profile-proxifi......
  • ubunto中常见问题及WSL
     ubunto中常见问题 ubuntu中vscode界面放大缩小的快捷方式ubuntu中vscode界面放大缩小的快捷方式_ubuntu中让vscode全屏-CSDN博客https://blog.csdn.net/weixin_47295886/article/details/123023748 解决出现无法使用sudo命令情况解决出现无法使用sudo命令情况-知乎(z......
  • DevExpress WinForms v24.1亮点- TreeList、折叠组件全新升级
    DevExpressWinForms拥有180+组件和UI库,能为WindowsForms平台创建具有影响力的业务解决方案。DevExpressWinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!DevExpressWinForms控件2024年第一个重大版本......
  • DevExpress WinForms中文教程:Data Grid - 如何自定义绘制?
    在本教程中,您将学习如何使用DevExpressgridView(网格视图)的CustomDraw…事件,您将从一个显示普通任务数据的网格开始。首先使用事件来自定义单元格外观,然后修改相同的事件处理程序,来根据网格数据更改单个单元格中显示的文本。接下来将进一步扩展处理程序来在特定单元格中绘制图像,......
  • WPF Customize Button ControlTemplate TextBlock
    //xaml<UserControlx:Class="WpfApp332.BtnTbk"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:mc="......
  • WPF UniformGrid contain children auto resize
    //xaml<Windowx:Class="WpfApp332.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.mi......
  • PbootCMS 常见问题及解决方法
    为了帮助PbootCMS站长们快速解决常见的错误提示,本文整理了一些常见问题及其解决方法。您可以使用快捷键 Ctrl+F 快速查找相关问题的答案。1.后台图片上传提示:“上传失败:存储目录创建失败!”解决方法:给静态资源目录(根目录下的 static 文件夹)增加权限,一般设置为755或者......
  • 新手朋友在安装pbootcms经常遇到一些错误(PbootCMS 常见问题及解决方法)
    Parseerror:syntaxerror,unexpected':',expecting'{'问题描述:在 www\core\function\handle.php 文件第130行出现了语法错误,提示意外的冒号。原因分析:此错误通常出现在尝试在较旧的PHP版本上运行需要PHP7.x或更高版本的代码时。PHP7引入了一些新的语法特性,......
  • 解决vs2022 工具箱中不显示 Devexpress控件的问题
    无效果的尝试1、在工具箱点右键选择RepairToolBox...无效果2、在工具箱中点右键重置工具箱无效果3、在工具箱中右键选择项浏览选择对应的dll,报错提示“面向无法动态枚举工具箱项目的平台”无效果4、删除整个vs配置文件夹:%LocalAppData%\Microsoft\VisualStudio<ver......