UWP DataGrid上的糟糕性能

时间:2019-06-07 18:50:22

标签: uwp datagrid

我正在寻找在UWP中显示表格数据的良好控件。我用ListView和静态标题获得了相当不错的性能,不到一秒钟即可显示500条记录。

因此,我将UWP DataGrid带出了旋转。如果我使用AutoGenerateColumns,我可以获得不错的性能(大约4-5秒),但是如果我关闭该功能并使用一些基本的DataGridTextColumns,则只有三列的相同集合的性能在30秒左右就很恐怖:

<controls:DataGrid AlternatingRowBackground="LightGray"
                   AutoGenerateColumns="False"
                   ItemsSource="{x:Bind ViewModel.Items.View}">
    <controls:DataGrid.Columns>
        <controls:DataGridTextColumn Binding="{Binding Path=Percent, Converter={StaticResource StringFormatter}, ConverterParameter=\{0:0.0%\}}"
                                     Header="Weight"
                                     Width="96"/>
        <controls:DataGridTextColumn Binding="{Binding Path=SecurityName}"
                                     Header="Weight"
                                     Width="200"/>
        <controls:DataGridTextColumn Binding="{Binding Path=Symbol}"
                                     Header="Symbol"
                                     Width="88"/>
    </controls:DataGrid.Columns>
</controls:DataGrid>

在我看来,该控件不再是虚拟化的,但是我找不到任何启用/禁用虚拟化的控件。此控件的文档确实非常有限。有没有人对这种控制有任何实践经验?有谁知道“自动列”功能比显式列声明的工作速度更快?

1 个答案:

答案 0 :(得分:0)

我建议将Teleriks RadDataGrid用于UWP,因为我知道它可以支持虚拟化。他们开源了,所以应该免费使用!