WPF Datagrid非常慢

时间:2018-04-03 16:35:32

标签: c# wpf datagrid rendering

我正在使用datagrid来显示包含~50行的数据表。由于某种原因,网格的渲染非常慢,我需要大约2秒来显示带有数据的网格。例如,如果我使用ListBox或ListView,渲染速度会更快,这意味着根本没有延迟。 我要显示的数据表有20列,但如果我只想显示一列,它对渲染性能没有影响。

这是我用来显示网格的代码:

    <DataGrid ItemsSource="{Binding Data}" AutoGenerateColumns="True" />

如果我将autogeneratecolumns设置为false(网格呈现行但没有列),则网格仍需要〜2秒才能呈现

   <DataGrid ItemsSource="{Binding Data}" AutoGenerateColumns="False" />

如果我使用列表框而没有任何延迟(但我需要编写一个通用模板来显示所有列),ListView也没有任何延迟

    <ListBox ItemsSource="{Binding Data}"/>

我不知道为什么网格那么慢。我还尝试设置VirtualizingPanel.IsVirtualizing =“True”,但它对性能没有影响。

有什么想法吗?

KR Manuel

1 个答案:

答案 0 :(得分:0)

所有DataGrid都非常慢(甚至是你支付的那些)。您需要打开虚拟化。 VirtualizingStackPanel.IsVirtualizing = true以及VirtualizingStackPanel.VirtualizationMode = recycling。如果你有很多专栏,或者开始做模板,它会再次慢慢爬行。你真的无能为力。我已经尝试过每一个DataGrid(syncfusion,infragistics等)。它们都很慢。