WPF 虚拟化技术

发布时间 2023-11-09 09:43:42作者: 平常xin

如果需要处理大量数据,数据有几万条而不是几百条,良好的数据绑定不仅仅需要绑定功能,还需要能够处理大量的数据而不会严重降低显示速度或消耗大量的内存。WPF列表控件提供的最重要功能是UI虚拟化(UI Virtaulization),UI 虚拟化是列表仅为当前显示项创建容器对象的一种技术。

UI虚拟化支持实际上没有被构建进List Box或ItemsControl类,而是被硬编码到VirtualizingStackPanel容器,除了增加虚拟化支持,该面板和StackPanel面板的功能类似。

例如:

<ComboBox Name="lstFast" Grid.Row="1" Grid.Column="1" Margin="5" VirtualizingStackPanel.ScrollUnit="Pixel">
            <ComboBox.ItemsPanel>
                <ItemsPanelTemplate>
                    <VirtualizingStackPanel></VirtualizingStackPanel>
                </ItemsPanelTemplate>
            </ComboBox.ItemsPanel>
     </ComboBox>

创建2个ComboBox,一个不使用虚拟化技术,一个使用虚拟化技术,当绑定大量数据时,不是虚拟化技术的,需要加载完成后才能显示,有明显的卡顿,使用虚拟化技术加载数据不发生卡顿现象。