这篇博客将介绍WPF中的虚拟化技术。

1. Data Virtualization 通常情况下我们说数据虚拟化是指数据源没有完全加载,仅加载当前需要显示的数据呈现给用户。这种场景会让我们想到数据分页显示,当需要特定页面的数据时,根据页数请求相应数据。

WPF没有提供对Data Virtualization原生态的支持,当时我们可以使用Paging相关技术来实现。在我先前的博客WPF 实现 DataGrid/ListView 分页控件中有介绍。

2. UI Virtualization 是针对数据容器渲染数据项的一个优化。举个例子,一个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"/>

延伸阅读

学习是年轻人改变自己的最好方式-Java培训,做最负责任的教育,学习改变命运,软件学习,再就业,大学生如何就业,帮大学生找到好工作,lphotoshop培训,电脑培训,电脑维修培训,移动软件开发培训,网站设计培训,网站建设培训学习是年轻人改变自己的最好方式