翻譯|使用教程|編輯:龔雪|2025-10-16 11:19:45.190|閱讀 1 次
概述:本文主要介紹如何在MVVM應(yīng)用程序中使用虛擬源,歡迎下載最新版組件體驗(yàn)!
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
DevExpress WPF擁有120+個(gè)控件和庫,將幫助您交付滿足甚至超出企業(yè)需求的高性能業(yè)務(wù)應(yīng)用程序。通過DevExpress WPF能創(chuàng)建有著強(qiáng)大互動功能的XAML基礎(chǔ)應(yīng)用程序,這些應(yīng)用程序?qū)W⒂诋?dāng)代客戶的需求和構(gòu)建未來新一代支持觸摸的解決方案。 無論是Office辦公軟件的衍伸產(chǎn)品,還是以數(shù)據(jù)為中心的商業(yè)智能產(chǎn)品,都能通過DevExpress WPF控件來實(shí)現(xiàn)。
本文將為大家一步一步演示如何在一個(gè)MVVM應(yīng)用程序中使用虛擬源。
 
 
注意:本教程使用作為示例數(shù)據(jù)源,使用作為虛擬數(shù)據(jù)源。
DevExpress技術(shù)交流群12:1028386091 歡迎一起進(jìn)群討論
開發(fā)者可以允許用戶在GridControl中對行進(jìn)行排序,完成以下步驟:
 
 
Issues Service(問題服務(wù))允許您應(yīng)用以下排序順序:
C#
public enum IssueSortOrder {
Default,
CreatedDescending,
VotesAscending,
VotesDescending
}
下面的代碼片段在GridControl中實(shí)現(xiàn)了默認(rèn)的排序順序:
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;
}
在虛擬源中實(shí)現(xiàn)排序操作
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;
}
xml
<dxg:GridColumn FieldName="Votes" AllowSorting="True" DefaultSortOrder="Descending"/>
 
 
xml
<dxg:GridColumn FieldName="Created" AllowSorting="True" AllowedSortOrders="Descending"/>
 
 
在本教程中,Issues Service只能按單列對數(shù)據(jù)進(jìn)行排序。如果您的數(shù)據(jù)源可以按多列排序數(shù)據(jù),請將屬性設(shè)置為False。在這種情況下,GridControl可以按多列排序,用戶應(yīng)按住Shift鍵并單擊所需的列標(biāo)題,以便根據(jù)這些列對數(shù)據(jù)進(jìn)行排序。
Created Date列允許用戶僅按降序?qū)?shù)據(jù)進(jìn)行排序。當(dāng)用戶單擊列標(biāo)題時(shí),GridControl不會更改排序順序,用戶應(yīng)按住Ctrl鍵并單擊列標(biāo)題來清除列的排序順序。
將DataViewBaseColumnSortClearMode屬性設(shè)置為Click,這允許用戶通過單擊列標(biāo)題應(yīng)用或清除排序順序:
xml
<dxg:GridControl.View> <dxg:TableView ColumnSortClearMode="Click"/> </dxg:GridControl.View>
 
 
更多產(chǎn)品資訊及授權(quán),歡迎來電咨詢:023-68661681
慧都是?家?業(yè)數(shù)字化解決?案公司,專注于軟件、?油與?業(yè)領(lǐng)域,以深?的業(yè)務(wù)理解和?業(yè)經(jīng)驗(yàn),幫助企業(yè)實(shí)現(xiàn)智能化轉(zhuǎn)型與持續(xù)競爭優(yōu)勢。
慧都是DevExpress的中國區(qū)的合作伙伴,DevExpress作為用戶界面領(lǐng)域的優(yōu)秀產(chǎn)品,幫助企業(yè)高效構(gòu)建權(quán)限管理、數(shù)據(jù)可視化(如網(wǎng)格/圖表/儀表盤)、跨平臺系統(tǒng)(WinForms/ASP.NET/.NET MAUI)及行業(yè)定制解決方案,加速開發(fā)并強(qiáng)化交互體驗(yàn)。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@ke049m.cn
文章轉(zhuǎn)載自:慧都網(wǎng)