在数据量大的情况下,DataGrid和ComboBox无法渲染或者渲染速度比较慢。
首先我们来介绍下VirtualizingStackPanel 类(以下摘自MSDN)
标准布局系统可以创建项容器并为每个与列表控件关联的项计算布局。 “虚拟化”是指一种技术,通过该技术,可根据屏幕上所显示的项来从大量数据项中生成用户界面 (UI) 元素的子集。 如果在可能只有少量元素显示在屏幕上时生成多个 UI 元素,则会对应用程序的性能产生负面影响。 VirtualizingStackPanel 会计算可见项的数量,并处理来自 ItemsControl(如 ListBox 或 ListView)的 ItemContainerGenerator,以便只为可见项创建 UI 元素。
仅当 StackPanel 中包含的项控件创建自己的项容器时,才会在该面板中发生虚拟化。 可以使用数据绑定来确保发生这一过程。 如果创建项容器并将其添加到项控件中,则与 StackPanel 相比,VirtualizingStackPanel 不能提供任何性能优势。
VirtualizingStackPanel 是 ListBox 元素的默认项宿主。 默认情况下,IsVirtualizing 属性设置为 true。
当 IsVirtualizing 设置为 false 时,VirtualizingStackPanel 的行为与普通