<ContentControl x:Name="UnitData"
Canvas.Left="0" Canvas.Bottom="0"
Width="0" Height="0"
Panel.ZIndex="1"
Background="Transparent" RenderOptions.BitmapScalingMode="NearestNeighbor" RenderTransformOrigin="0.5,0.5" Selector.IsSelected="False"
Style="{StaticResource TranformNoneRotateStyle}">
<Grid>
<ListBox x:Name="listUnitData" ItemContainerStyleSelector="{StaticResource ShapeStyleSelector}" ItemTemplateSelector="{StaticResource ShapeDataTemplateSelector}" ItemsSource="{Binding ShapeData}" SelectionMode="{Binding ShapeSelectionMode, Mode=TwoWay}" Style="{StaticResource noScrollViewerListBoxStyle}" />
</Grid>
</ContentControl>
wpf窗口界面上ListBox大概有着2w+的图形数据,每次刷新起来特别耗费时间需要几分钟,想知道要怎么优化
两种方式:
1. 分段取数据分段加载(最彻底);
2. 启用WPF的UI虚拟化(一定程度优化)设置IsVirtualizing="True";
总体看,最好是分段取数据分段加载,否则多个请求同时取数据,如果数据再服务器,一下子2W+,服务器容易挂。
分页拿数据。2w条数据,内存小一点的电脑可能直接卡死。不光是服务器能不能承受的问题了。