翻譯|使用教程|編輯:龔雪|2022-09-22 10:24:43.170|閱讀 261 次
概述:在使用DevExpress WPF的Grid組件時,如果遇到頻繁的數(shù)據(jù)更新該如何處理?本文將為大家提供一些解決方法,歡迎下載組件立即體驗!
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
DevExpress WPF擁有120+個控件和庫,將幫助您交付滿足甚至超出企業(yè)需求的高性能業(yè)務(wù)應(yīng)用程序。通過DevExpress WPF能創(chuàng)建有著強(qiáng)大互動功能的XAML基礎(chǔ)應(yīng)用程序,這些應(yīng)用程序?qū)W⒂诋?dāng)代客戶的需求和構(gòu)建未來新一代支持觸摸的解決方案。
您可以使用以下技術(shù)當(dāng)中的一種來優(yōu)化GridControl中的數(shù)據(jù)更新:
ChunkList
ChunkList<T> 適合處理大型集合更新的應(yīng)用程序,如果您執(zhí)行多個迭代數(shù)據(jù)源項的操作(例如,匯總計算、數(shù)據(jù)排序和過濾操作),ChunkList 的工作速度可能比普通集合慢。
我們建議您在以下情況下使用 ChunkList:
優(yōu)化摘要
GridControl 重新計算所有記錄以更新數(shù)據(jù)摘要,要優(yōu)化更新操作,請將屬性設(shè)置為 true。在這種情況下,GridControl僅計算更改記錄的值并根據(jù)這些值更新數(shù)據(jù)摘要,因此性能不依賴于記錄數(shù)。
我們建議您在以下情況下優(yōu)化匯總計算:
數(shù)據(jù)整型操作允許您對數(shù)據(jù)進(jìn)行排序、過濾和分組,以及計算摘要,發(fā)生數(shù)據(jù)源更改時,GridControl會執(zhí)行這些操作。要將多個更新作為單個操作處理,請使用以下方法:
鎖定更新
當(dāng)您在 GridControl 中鎖定更新時,用戶無法在 UI 中執(zhí)行任何數(shù)據(jù)操作。 您可以處理數(shù)據(jù)更新,然后將所有更改應(yīng)用到 GridControl。
我們建議您在以下情況下鎖定 GridControl 更新:
請按照以下步驟應(yīng)用此技術(shù):
下面的代碼示例演示了如何防止 GridControl 在發(fā)生多個數(shù)據(jù)更改時頻繁更新。
C#
public void PerformUpdates() { gridControl.BeginDataUpdate(); // Perform massive data updates... gridControl.EndDataUpdate(); }
如果使用 TreeListView,GridControl 會根據(jù)數(shù)據(jù)結(jié)構(gòu)類型處理分層更新:
無論數(shù)據(jù)結(jié)構(gòu)類型如何,調(diào)用和 方法來管理分層更新。 例如,如果數(shù)據(jù)源中的每次更改都會顯著影響節(jié)點層次結(jié)構(gòu),則您可能希望在 EndDataUpdate 調(diào)用之后只更新一次。 為此,請將 true 作為參數(shù)傳遞給 方法。
手動刷新
將屬性設(shè)置為 false 來允許 GridControl 在數(shù)據(jù)更改時忽略數(shù)據(jù)整型操作,調(diào)用 方法來顯示控件中的所有更改。
我們建議您在以下情況下手動強(qiáng)制更新 GridControl:
定時器自動刷新
如果您的數(shù)據(jù)頻繁更改(例如,每毫秒),則 GridControl 沒有足夠的時間來更新其布局,您可以對計時器執(zhí)行更新操作。實現(xiàn)一個自定義集合,阻止來自數(shù)據(jù)源的更改通知并在指定的時間間隔內(nèi)復(fù)制數(shù)據(jù),此集合中的更改會觸發(fā) GridControl 更新。
我們建議您在以下情況下更新計時器上的數(shù)據(jù):
DevExpress技術(shù)交流群6:600715373 歡迎一起進(jìn)群討論
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@ke049m.cn
文章轉(zhuǎn)載自:慧都網(wǎng)