翻譯|使用教程|編輯:龔雪|2025-10-11 10:48:17.293|閱讀 41 次
概述:本文主要介紹如何在MVVM應用程序中使用虛擬源,歡迎下載最新版組件體驗!
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
DevExpress WPF擁有120+個控件和庫,將幫助您交付滿足甚至超出企業需求的高性能業務應用程序。通過DevExpress WPF能創建有著強大互動功能的XAML基礎應用程序,這些應用程序專注于當代客戶的需求和構建未來新一代支持觸摸的解決方案。 無論是Office辦公軟件的衍伸產品,還是以數據為中心的商業智能產品,都能通過DevExpress WPF控件來實現。
本文將為大家一步一步演示如何在一個MVVM應用程序中使用虛擬源。
注意:本教程使用作為示例數據源,使用作為虛擬數據源。
DevExpress技術交流群11:749942875 歡迎一起進群討論
本節將創建一個虛擬源,并從中獲取數據行。
創建一個ViewModel(視圖模型)
創建一個ViewModel,用命令從數據源獲取行,如下所示:
1. 創建一個FetchIssues命令。
2. 使用IssuesService.GetIssuesAsync方法從數據源獲取數據。
3. 創建對象并將其分配給屬性。
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綁定到虛擬源
初始化一個虛擬源并從數據源中獲取行:
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>
具體說明
更多產品資訊及授權,歡迎來電咨詢:023-68661681
慧都是?家?業數字化解決?案公司,專注于軟件、?油與?業領域,以深?的業務理解和?業經驗,幫助企業實現智能化轉型與持續競爭優勢。
慧都是DevExpress的中國區的合作伙伴,DevExpress作為用戶界面領域的優秀產品,幫助企業高效構建權限管理、數據可視化(如網格/圖表/儀表盤)、跨平臺系統(WinForms/ASP.NET/.NET MAUI)及行業定制解決方案,加速開發并強化交互體驗。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@ke049m.cn
文章轉載自:慧都網