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