這篇博客將介紹WPF中的虛擬化技術(shù)。

1. Data Virtualization 通常情況下我們說數(shù)據(jù)虛擬化是指數(shù)據(jù)源沒有完全加載,僅加載當前需要顯示的數(shù)據(jù)呈現(xiàn)給用戶。這種場景會讓我們想到數(shù)據(jù)分頁顯示,當需要特定頁面的數(shù)據(jù)時,根據(jù)頁數(shù)請求相應(yīng)數(shù)據(jù)。

WPF沒有提供對Data Virtualization原生態(tài)的支持,當時我們可以使用Paging相關(guān)技術(shù)來實現(xiàn)。在我先前的博客WPF 實現(xiàn) DataGrid/ListView 分頁控件中有介紹。

2. UI Virtualization 是針對數(shù)據(jù)容器渲染數(shù)據(jù)項的一個優(yōu)化。舉個例子,一個ListView/ListBox控件中有10000個Item,但是可見的只有10個,那么此時只渲染并顯示這10個Item,剩余的9990個Item不實例化和顯示。這樣可以提高程序的性能。

WPF中VirtualizingStackPanel容器是實現(xiàn)了UI Virtualization的容器,VirtualizingStackPanel也是ListBox/ListView的默認數(shù)據(jù)容器。

下面通過一個例子來展示開啟UI 虛擬化和關(guān)閉UI 虛擬化對程序性能產(chǎn)生的影響。

<ListView x:Name="VirtualizationListView" 
          VirtualizingPanel.VirtualizationMode="Recycling"
          VirtualizingPanel.IsVirtualizing="True"/>

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負責(zé)任的教育,學(xué)習(xí)改變命運,軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式