一开始我以为时间是花在数据绑定上面,花费很多心思优化,开异步线程,后来才发现是界面渲染,即DataGrid绑定数据后,界面呈现花了很多时间。
虚拟化的作用:假设DataGrid.ItemSource绑定的数据源有5000条数据,窗体大小只能显示40条数据,那么它就会先只实例化这40条数据呈现出来。如果没有实例化,那它会把5000条全部实例化呈现出来。
虚拟化的缺点:没有实例化的部分无法获取。
1、前台xaml
<ScrollViewer Name="scrollviewLog" Width="480" Height="250" Margin="5">
<DataGrid Name="dataGrid" ItemsSource="{Binding MessageCollection,Mode=OneWay}" Style="{StaticResource dataGridStyleLog}" BorderBrush="#17aeec"
BorderThickness="1" VirtualizingPanel.IsContainerVirtualizable="True" VirtualizingPanel.IsVirtualizing="True"
VirtualizingPanel.VirtualizationMode="Recycling"&g