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

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

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

获取DevExpress v24.1正式版下载(Q技术交流: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。

相关推荐
界面开发小八哥3 小时前
DevExpress WPF中文教程:如何解决排序、过滤遇到的常见问题?(二)
.net·wpf·界面控件·devexpress·ui开发
Vae_Mars3 小时前
WPF中图片的宫格显示
wpf
充值内卷11 小时前
WPF入门教学一 WPF简介
wpf
James.TCG19 小时前
WPF中依赖属性或附加属性的继承
wpf
shanshan209921 小时前
自定义WPF滑块样式-Slider
wpf
平凡而伟大(心之所向)1 天前
NET WPF使用组件库HandyControl
wpf·handycontrol
△曉風殘月〆2 天前
WPF创建不规则窗体时WebBrowser控件不显示的问题
wpf·webbrowser
daqinzl2 天前
wpf中使用 HttpClientFactory创建HttpClient并下载文件
wpf·httpclient 文件下载·httpclientfacto
界面开发小八哥2 天前
界面控件DevExpress中文教程:如何PDF图形对象的可见性?
ui·pdf·wpf·界面控件·winform·devexpress
He BianGu2 天前
演示:基于WPF的自绘的中国地铁轨道控件
wpf