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

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

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

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

WPF中VirtualizingStackPanel容器是實現了UI Virtualization的容器,VirtualizingStackPanel也是ListBox/ListView的默認數據容器。

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

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

電腦培訓,計算機培訓,平面設計培訓,網頁設計培訓,美工培訓,Web培訓,Web前端開發(fā)培訓

public MainWindow()
{
    InitializeComponent();    this.Loaded += delegate
    {
        List<string> items = new List<string>();        for (int i = 0; i < 10000; i++)
        {
            items.Add(string.Concat("item", i));
        }  &nbs
        
		

網友評論