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

news/2025/10/13 10:28:27/文章来源:https://www.cnblogs.com/AABBbaby/p/19137902

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

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

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

DevExpress WPF中文教程图集

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

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

DevExpress技术交流群11:749942875      欢迎一起进群讨论

Step 1:获取数据

本节将创建一个虚拟源,并从Issues Service中获取数据行。

DevExpress WPF中文教程图集
实现细节

创建一个ViewModel(视图模型)

创建一个ViewModel,用命令从数据源获取行,如下所示:

1. 创建一个FetchIssues命令。

2. 使用IssuesService.GetIssuesAsync方法从数据源获取数据。

3. 创建FetchRowsResult对象并将其分配给FetchAsyncArgsBase.Result属性。

C#

using DevExpress.Mvvm;
using DevExpress.Mvvm.DataAnnotations;
using DevExpress.Mvvm.Xpf;
using DevExpress.Xpf.Data;public class IssueViewModel : ViewModelBase {[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;
}
}

提示:有关GetIssueSortOrder方法实现的其他信息,我们将在下篇文章中详细介绍。

创建一个GridControl

添加一个GridControl,其列对应于View中的IssuesService.IssueData字段:

xml

<dxg:GridControl>
<dxg:GridControl.Columns>
<dxg:GridColumn FieldName="Subject" IsSmart="True"/>
<dxg:GridColumn FieldName="User" IsSmart="True"/>
<dxg:GridColumn FieldName="Created" IsSmart="True"/>
<dxg:GridColumn FieldName="Votes" IsSmart="True"/>
<dxg:GridColumn FieldName="Priority" IsSmart="True"/>
</dxg:GridControl.Columns>
</dxg:GridControl>

将Data Grid绑定到虚拟源

初始化一个虚拟源并从数据源中获取行:

  1. 将虚拟源实例(本教程中的InfiniteAsyncSource)分配给DataControlBase.ItemsSource属性。
  2. 将VirtualSourceBase.ElementType属性设置为从数据源检索的行类型(本教程中的IssueData)。如果您的服务返回未类型化的对象(例如,转换为动态对象的JSON对象),则指定VirtualSourceBase.CustomProperties属性。
  3. 定义允许窗口与ViewModel一起工作的窗口数据上下文。
  4. 将FetchIssues命令绑定到InfiniteAsyncSource.FetchRowsCommand属性。

xml

<Window
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core">
<Window.DataContext>
<local:IssueViewModel/>
</Window.DataContext><dxg:GridControl>
<dxg:GridControl.ItemsSource>
<dx:InfiniteAsyncSource ElementType="{x:Type local:IssueData}"
FetchRowsCommand="{Binding FetchIssuesCommand}"/>
</dxg:GridControl.ItemsSource>
<!-- ... -->
</dxg:GridControl>
</Window>

具体说明

  • 如果在数据源级别更改了数据,请调用RefreshRows()方法来重新加载数据。
  • FetchRowsEventArgsBase.Take属性返回需要重新加载的行数,使用FetchRowsEventArgsBase.Take属性来允许InfiniteAsyncSource在刷新后保留选中的行和滚动位置,PagedAsyncSource自动保留选中的行和滚动位置。
  • 如果源中的数据经常更改,则可以在刷新后保留相同的选定行,指定VirtualSourceBase.KeyProperty来使虚拟源通过特定字段查找所选行。
  • 当GridControl显示最后加载的行时,虚拟源获取行的下一部分,将FetchMode设置为Manual来改变此操作。
  • 您可以调用FetchMoreRows()方法来强制FetchRowsCommand / FetchRows并加载下一部分数据。

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

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

相关文章

Java并发机制的底层实现原理:从CPU到JVM的全面解析

深入理解volatile、synchronized和原子操作的实现机制,掌握高并发编程的核心原理引言:为什么需要了解底层原理? 在日常开发中,我们经常使用volatile、synchronized和原子类来解决并发问题。但仅仅会使用这些工具是…

2025年10月储罐源头厂家最新权威榜单:技术实力与市场口碑深度解析

2025年10月储罐源头厂家最新权威榜单:技术实力与市场口碑深度解析随着工业和化工行业的快速发展,储罐作为关键的储存设备,其质量和性能直接影响到企业的生产效率和安全。为了帮助筛选储罐品牌,特此发布权威推荐榜单…

学习unigui【38】重新认识UUNIGUI--为什么这样快? 站在“架构与性能”层面重新审视

学习unigui【38】重新认识UUNIGUI--为什么这样快? 站在“架构与性能”层面重新审视为什么 UniGUI 这么快、甚至感觉比原生 HTML + JS 框架还灵敏? 答案在于:✅ UniGUI 把「前端交互」和「后端状态」紧密绑定到一个持…

2025 年国内发电机厂家最新推荐排行榜:汽油 / 柴油 / 10KW-200KW 多功率机型精选,全方位解读品牌实力助力精准选购

在 2025 年工业生产、基础设施建设、应急保障等领域对电力供应的依赖度持续攀升的背景下,汽油发电机、柴油发电机及不同功率规格的发电机需求日益增长。然而,当前发电机市场品牌数量繁杂,不同品牌在产品质量、技术水…

wqs二分学习笔记

一般解决问题 你有一个 \(k\),表示最后要变成 \(k\) 个,或者说是选 \(k\)。 形式化地讲,设 \(f(i)\) 表示最后变成 \(i\) 个,或者是选 \(i\) 个的方案。 你一般要求的是 \(f(k)\) 的最大值或者最小值。 问题特征 你…

Android系统中使用initrc脚本在开机时禁用selinux

正常情况下设置selinux为宽容模式时,需要在adb shell 中执行setenforce 0的操作临时禁用selinux。 (当然,手机上有专门的magisk模块/app可以禁用,此处只是对userdebug/eng版本的系统提供的禁用方法) 为了避免每次…

2025年10月氧化镁厂家最新推荐排行榜,轻烧氧化镁,重烧氧化镁,高纯氧化镁,活性氧化镁公司推荐!

2025年10月氧化镁厂家最新推荐排行榜:轻烧氧化镁、重烧氧化镁、高纯氧化镁、活性氧化镁公司推荐随着工业技术的不断发展,氧化镁在多个领域中的应用越来越广泛。无论是轻烧氧化镁、重烧氧化镁、高纯氧化镁还是活性氧化…

Vector向量数据库对比

Vector向量数据库对比简介 向量数据库已成为存储和索引非结构化与结构化数据表征的首选工具。这些表征被称为向量嵌入(vector embeddings),由嵌入模型生成。向量存储在使用深度学习模型(尤其是大语言模型)开…

2025 年最新推荐集装箱拖车供应厂家权威榜单:全方位解析优质企业实力,助力精准选择箱式 / 冷藏等拖车服务

在集装箱运输行业快速发展的过程中,市场乱象逐渐凸显,给企业和货主的运输需求带来诸多困扰。众多集装箱拖车供应厂家资质良莠不齐,部分厂家缺乏规范管理,服务质量难以保障;运输安全隐患频发,不少厂家未配备完善的…

2025 年试验箱厂家最新推荐排行榜:聚焦高低温 / 恒温恒湿 / 冷热冲击等设备研发实力与 ISO 质量管控的标杆企业精选

当前工业制造、航空航天、电子通讯等领域对环境试验设备需求激增,试验箱作为检测产品性能稳定性的核心设备,其质量与技术水平直接影响下游企业研发效率与产品质量。然而市场上试验箱企业数量繁杂,部分企业存在技术创…

完整教程:PyTorch深度学习实战【12】之基于RNN的自然语言处理入门

完整教程:PyTorch深度学习实战【12】之基于RNN的自然语言处理入门pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "…

IDA9.0中文版与相关插件安装详细教程

一、安装IDA9.0中文版前提是需要安装插件中的 python包:python-3.11.9-amd64.exe然后再安装IDA Professional 9.0中文版二、IDA插件安装1.IDA Feeds插件安装进入idalib目录,然后使用以下命令进行安装:pip install …

深入解析:用AI重塑电商,京东零售发布电商创新AI架构体系Oxygen

深入解析:用AI重塑电商,京东零售发布电商创新AI架构体系Oxygenpre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "C…

2025 北京宽带安装公司最新推荐榜:专业口碑双优服务商汇总,企业家庭装机必看指南北京企业/北京无线/北京商务/北京商业/北京店铺宽带安装公司推荐

随着北京数字经济加速发展,企业云办公、家庭高清娱乐等需求对宽带服务的稳定性、响应速度提出更高要求。但当前市场仍存诸多痛点:部分服务商安装响应滞后,老旧小区与远郊区域服务覆盖不足;隐性收费、技术能力参差不…

2025年10月苹果仓源头厂家最新推荐榜单:专业仓储与高效配送的优质选择!

2025年10月苹果仓源头厂家最新推荐榜单:专业仓储与高效配送的优质选择!随着电子商务和供应链管理的不断发展,高效的仓储和配送解决方案成为企业成功的关键因素之一。苹果仓作为一种先进的仓储解决方案,不仅能够提升…

2025年10月整平机厂家最新推荐排行榜,精密整平机,自动整平机,金属板材整平机公司推荐!

2025年10月整平机厂家最新推荐排行榜:精密整平机、自动整平机、金属板材整平机公司推荐随着工业自动化和智能制造的快速发展,整平机作为金属加工领域的重要设备,其市场需求持续增长。为了帮助筛选整平机品牌,特此发…

2025 最新铝型材源头厂家推荐排行榜:优选企业深度解析,佛山龙头与新锐品牌选购指南

随着建筑、工业、家居等领域对铝型材需求的持续攀升,市场上厂家数量激增,但行业乱象却日益凸显:部分厂家产能不足导致订单交付延迟,原材料以次充好造成产品精度不达标,定制服务缺失难以匹配个性化需求,多层分销更…

linux与window文件互传方式

linux与window文件互传方式1、scp命令上传: window打开dos命令,scp 文件路径 linux用户名@ip地址:/路径下载: window打开dos窗口,scp linux用户名@ip地址:文件路径 需要下载到window路径2、sftp命令上传:sft…

行业推荐:广州智建云工程管理软件/软件系统/软件App/软件平台/工程管理软件和验房系统公司获认可,专业方案成品质管控优选

在工程管理数字化浪潮下,广州智建云信息技术有限公司打造的工程管理与验房一体化平台,凭借专业的功能设计与成熟的行业应用,成为众多企业的合规选择。其覆盖项目全周期的信息化解决方案,在提升管控效率与交付品质方…

2025 聚合氯化铝厂家最新推荐榜:优质厂家选购指南与高口碑品牌全解析聚合氯化铝絮凝剂/水处理用聚合氯化铝/生产聚合氯化铝厂家推荐

随着环保政策深化与水处理需求升级,聚合氯化铝市场迎来产能年均 5% 以上的增长,但行业乱象仍困扰采购者。部分产品有效成分不足、杂质超标导致二次污染,老牌与新兴品牌混杂让选型陷入困境,且饮用水净化、工业废水处…