DevExpress WPF中文教程:Data Grid - 如何使用虚拟源?(二)

news/2025/10/17 9:52:09/文章来源:https://www.cnblogs.com/AABBbaby/p/19147102

DevExpress WPF中文教程:Data Grid - 如何使用虚拟源?(二)

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

本文将为大家一步一步演示如何在一个MVVM应用程序中使用虚拟源。

DevExpress WPF中文教程图集

注意:本教程使用Issues Service作为示例数据源,使用InfiniteAsyncSource作为虚拟数据源。

获取DevExpress WPF v25.1正式版下载

DevExpress技术交流群12:1028386091      欢迎一起进群讨论

Step 2:启用排序操作

开发者可以允许用户在GridControl中对行进行排序,完成以下步骤:

  1. 在虚拟源中实现排序操作。
  2. 在GridControl中启用排序操作。
DevExpress WPF中文教程图集
订单排序

Issues Service(问题服务)允许您应用以下排序顺序:

  • Default(默认) – 记录按照从最新到最老的顺序显示。
  • Created Date(已创建日期) – 记录按最新到最老的顺序显示。
  • Votes (投票)– 记录按升序或降序显示。

C#

public enum IssueSortOrder {
Default,
CreatedDescending,
VotesAscending,
VotesDescending
}

下面的代码片段在GridControl中实现了默认的排序顺序:

C#

[Command]
public void FetchIssues(FetchRowsAsyncArgs args) {
args.Result = GetIssuesAsync(args);
}
async Task<FetchRowsResult> GetIssuesAsync(FetchRowsAsyncArgs args) {
var take = args.Take ?? 30;
var issues = await IssuesService.GetIssuesAsync(
skip: args.Skip,
take: take,
sortOrder: GetIssueSortOrder(args.SortOrder),
filter: null
);return new FetchRowsResult(issues, hasMoreRows: issues.Length == take);
}
static IssueSortOrder GetIssueSortOrder(SortDefinition[] sortOrder) {
return IssueSortOrder.Default;
}
实现细节

在虚拟源中实现排序操作

  1. 使用SortDefinition类实例获取GridControl排序选项。
  2. 解析排序选项并返回排序顺序,绑定到InfiniteAsyncSourceFetchRowsCommand属性的任何命令都在GridControl获取行时使用排序顺序。

C#

static IssueSortOrder GetIssueSortOrder(SortDefinition[] sortOrder) {
if (sortOrder.Length > 0) {
var sort = sortOrder.Single();
if (sort.PropertyName == "Created") {
if (sort.Direction != ListSortDirection.Descending)
throw new InvalidOperationException();
return IssueSortOrder.CreatedDescending;
}
if (sort.PropertyName == "Votes") {
return sort.Direction == ListSortDirection.Ascending
? IssueSortOrder.VotesAscending
: IssueSortOrder.VotesDescending;
}
}
return IssueSortOrder.Default;
}
启用“Votes”列排序操作
  1. 给ColumnBase.AllowSorting属性赋值true。
  2. 将ColumnBase.DefaultSortOrder属性设置为Descending来指定默认排序顺序,当用户第一次单击列的标题时应用此顺序。

xml

<dxg:GridColumn FieldName="Votes"
AllowSorting="True"
DefaultSortOrder="Descending"/>
DevExpress WPF中文教程图集
启用“Created Date”列排序操作
  1. 给 ColumnBase.AllowSorting属性赋值true。
  2. Issues Service只能按已创建日期字段降序对行进行排序,将ColumnBase.AllowedSortOrders属性设置为Descending,来从UI中禁用该列的其他排序顺序。

xml

<dxg:GridColumn FieldName="Created"
AllowSorting="True"
AllowedSortOrders="Descending"/>
DevExpress WPF中文教程图集

在本教程中,Issues Service只能按单列对数据进行排序。如果您的数据源可以按多列排序数据,请将GridViewBase.AllowGroupingSortingBySingleColumnOnly属性设置为False。在这种情况下,GridControl可以按多列排序,用户应按住Shift键并单击所需的列标题,以便根据这些列对数据进行排序。

更改排序顺序

Created Date列允许用户仅按降序对数据进行排序。当用户单击列标题时,GridControl不会更改排序顺序,用户应按住Ctrl键并单击列标题来清除列的排序顺序。

将DataViewBaseColumnSortClearMode属性设置为Click,这允许用户通过单击列标题应用或清除排序顺序:

xml

<dxg:GridControl.View>
<dxg:TableView ColumnSortClearMode="Click"/>
</dxg:GridControl.View>
DevExpress WPF中文教程图集

更多DevExpress线上公开课、中文教程资讯请上中文网获取

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/938683.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用SecureCRT从linux上传下载文件方法

​​一、从 Linux 服务器打包并用 CRT 下载到 Windows 的完整流程​​ 1、准备工作​​ 在 Linux 服务器安装打包工具与 lrzsz(lrzsz 用于 ZModem 快速直传): RHEL/CentOS: sudo yum install -y ​​lrzsz​​ ​​…

2025年保洁公司权威推荐榜:苏州/昆山驻场保洁/钟点保洁/开荒保洁/外包保洁/商场保洁/办公楼保洁/工厂保洁/医院保洁/企业保洁全方位解析

行业背景与发展趋势随着城市化进程加速和现代服务业蓬勃发展,专业保洁服务已成为各类场所不可或缺的基础需求。从传统的驻场保洁、钟点保洁到专业度要求更高的开荒保洁、医院保洁,保洁行业正朝着专业化、标准化、智能…

用delegate 和event实现事件(有参和无参,有返回值和无返回值)

用delegate 和event实现事件(有参和无参,有返回值和无返回值)using System; using System.Windows.Forms; namespace 委托与事件 { public partial class Form1 : Form { //1、声明委托 public delegate void Conne…

2025年完整指南:PaddleOCR-VL-0.9B — 百度超轻量级文档解析利器

2025年完整指南:PaddleOCR-VL-0.9B — 百度超轻量级文档解析利器🎯 核心要点(TL;DR)突破性成就:仅0.9B参数的模型在全球OmniBenchDoc V1.5排行榜上排名第一(综合得分:90.67) 全面领先:超越GPT-4o、Gemini 2.…

有哪些ChatBI产品使用了NL2DSL2SQL的技术路线,其市场成熟度如何?

将自然语言转换为数据库查询的技术(称为 NL2SQL)已从一个新兴概念发展成为成熟且具有商业可行性的解决方案。该领域最重要的架构进步是多阶段代理方法,称为 NL2dsl2sql,它引入了领域特定语言 (DSL) 作为中间表示。…

跨网文件交换系统是什么?解锁企业高效数据传输新姿势

在数字化时代,数据已成为企业核心资产,金融、半导体、能源、政府等行业为保护敏感数据,普遍采用网络隔离技术构建安全“防火墙”。但隔离并非终点,企业仍需在不同网络(如内网与外网、研发网与办公网)间传输财务报…

详细介绍:5、软件工程

详细介绍:5、软件工程2025-10-17 09:41 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font…

应用安全 --- IDAPro脚本 之 导出所有函数地址

应用安全 --- IDAPro脚本 之 导出所有函数地址import idautils import idc import csvdef export_frida_functions_csv():"""导出适合Frida使用的函数列表"""with open("D:/frida_…

Content Hub接口文档

反馈系统后端接口文档 概述 反馈系统用于收集用户对系统功能的意见、建议和问题反馈,支持用户提交反馈、查看反馈列表、回复反馈等功能。 基础信息Base URL: /api/feedback 数据格式: JSON 字符编码: UTF-8数据结构 反…

Java 序列化详解

Java 序列化详解Java 序列化是将对象的状态转换为可存储或可传输的字节流的过程,而反序列化则是将字节流恢复为原始对象的过程。这一机制是 Java 中对象持久化(如保存到文件)、网络传输(如 RPC 调用)的基础。本文…

2025年防水织带/鞋垫/编织包/松紧带/鞋带/织带/飞织鞋面厂家最新推荐榜单:专业工艺与创新设计深度解析

2025年防水织带/鞋垫/编织包/松紧带/鞋带/织带/飞织鞋面厂家最新推荐榜单:专业工艺与创新设计深度解析随着纺织行业技术革新步伐加快,防水织带、功能性鞋垫、编织包、松紧带、鞋带、织带及飞织鞋面等产品正经历着从传…

2025年方钢/扁钢/圆钢/光轴/六角钢/异型钢/冷拉冷拔钢/热轧钢厂家最新权威推荐榜:Q355B/Q345B/16Mn/45#/40Cr/A3/Q235B钢材实力解析

2025年方钢/扁钢/圆钢/光轴/六角钢/异型钢/冷拉冷拔钢/热轧钢厂家最新权威推荐榜:Q355B/Q345B/16Mn/45#/40Cr/A3/Q235B钢材实力解析在制造业高质量发展的背景下,钢材作为基础工业材料,其质量与性能直接影响着下游产…

NVIDIA Jetson TX2 边缘盒子运行姿态检测模型记录

Jetson TX2系统版本:JetPack 4.6.1 (对应 L4T R32.6.1) 架构:aarch64(ARM 64) CUDA 版本:10.2 python 3.6背景介绍 ​ 最近在做关于视频流处理方面项目,接触到NVIDIA 的边缘盒子,就尝试着看在边缘盒子上能不能运…

2025年电源适配器厂家权威推荐榜:笔记本适配器/工业电源/充电器厂家实力与市场口碑深度解析

2025年电源适配器厂家权威推荐榜:笔记本适配器/工业电源/充电器厂家实力与市场口碑深度解析行业背景与市场现状随着数字化转型进程加速,全球电源适配器市场正迎来新一轮技术变革。据行业数据显示,2025年全球电源适配…

止损,补仓价格的合理设置

设置合适的百分比是一个因人而异、因股而异的艺术,没有一个固定的“万能数字”。它取决于您的交易风格、风险承受能力、股票的波动性(Beta值)和投资期限。 但是,我们可以提供一个基于普遍市场经验和风险控制原则的…

鸿蒙应用开发从入门到实战(二十四):一文搞懂ArkUI网格布局

ArkUI提供了各种布局组件用于界面布局,本文研究使用Grid组件实现网格布局。大家好,我是潘Sir,持续分享IT技术,帮你少走弯路。《鸿蒙应用开发从入门到项目实战》系列文章持续更新中,陆续更新AI+编程、企业级项目实…

Go-Sciter入门系列-环境搭建

Go+Sciter入门系列之HelloWorld go语言环境安装 https://golang.google.cn/dl/ 下载go版本,在视频录制的时候,最新版本为go1.24.5.windows-amd64.msi,2025-08-18打开官网的时候,最新版本已经来到了go1.25.0.windows…

完整教程:深入浅出 Redis:从核心原理到运维实战指南一

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

vscode 里面的python切环境

vscode 里面的python切环境. : 无法加载文件 C:\Users\Administrator\Documents\WindowsPowerShell\profile.ps1,因为在此系统上禁止运行脚本。有关详细信息,请 参阅 https:/go.microsoft.com/fwlink/?LinkID=13517…

ChromeOS融合Android技术栈,打造更智能的Chromebook体验

谷歌宣布将把Android技术栈整合到ChromeOS基础架构中,包括Android Linux内核和框架,以加速AI功能创新,简化工程开发,同时保持系统安全性和管理能力。构建更快速、更智能的Chromebook体验:融合谷歌顶尖技术 Chrome…