[WPF]WPF Data Virtualization和UI Virtualization

  • 时间:
  • 浏览:0
  • 来源:5分排列5官方_极速5分排列3

原文:

感谢您的阅读。

此时当通过Scrollbar滚动时,内存的波动不明显。

1. Data Virtualization 通常具体情况下亲们说数据虚拟化是指数据源没办法 完整篇 加载,仅加载当前前要显示的数据呈现给用户。你你是什么场景会让亲们想到数据分页显示,当前要特定页面的数据时,根据页数请求相应数据。

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

当遇到上述场景时,都前要合理的使用虚拟化技术来提高守护进程的性能。

2. UI Virtualization 是针对数据容器渲染数据项的另一个 优化。举个例子,另一个 ListView/ListBox控件蕴含60 00个Item,或者可见的不还可不都可以10个,没办法 此时只渲染并显示这10个Item,剩余的9990个Item不实例化和显示。那我都前要提高守护进程的性能。

WPF没办法 提供对Data Virtualization原生态的支持,当时亲们都前要使用Paging相关技术来实现。在我先前的博客WPF 实现 DataGrid/ListView 分页控件蕴含介绍。

WPF中VirtualizingStackPanel容器是实现了UI Virtualization的容器,VirtualizingStackPanel也是ListBox/ListView的默认数据容器。

当关闭UI虚拟化之后,内存的变化非常显著,或者守护进程初始化时就将这60 00条数据完整篇 在ListView中实例化出来了。

VirtualizingPanel.VirtualizationMode="Recycling"表示不循环实例化新的Item,类事Item1--Item20此时可见,拖动滚动条到Item60 ,再从Item60 返回至Item1--Item20时,这之后Item1--Item20我不要 被重新实例化。默认具体情况下 VirtualizingPanel.VirtualizationMode="Standard"。在ListView进行滚动时,内存会用增加。

下面通过另一个 例子来展示开启UI 虚拟化和关闭UI 虚拟化对守护进程性能产生的影响。