C# WPF数据网格加载非常慢
我有一个WPF应用程序,它包含一个数据网格。DataGrid包含10个DataGridTemplateColumns。我向其中添加了4个附加的DataGridTemplateColumns,但之后DataGrid的加载速度非常慢。我使用列表作为其项目源。请帮我解决这个问题 这是我的DataGrid XAMLC# WPF数据网格加载非常慢,c#,wpf,list,datagrid,datagridtemplatecolumn,C#,Wpf,List,Datagrid,Datagridtemplatecolumn,我有一个WPF应用程序,它包含一个数据网格。DataGrid包含10个DataGridTemplateColumns。我向其中添加了4个附加的DataGridTemplateColumns,但之后DataGrid的加载速度非常慢。我使用列表作为其项目源。请帮我解决这个问题 这是我的DataGrid XAML <DataGrid VirtualizingStackPanel.IsVirtualizing="False" ScrollViewer.Vertica
<DataGrid VirtualizingStackPanel.IsVirtualizing="False"
ScrollViewer.VerticalScrollBarVisibility="Visible"
ScrollViewer.CanContentScroll="True"
BorderBrush="Transparent"
ClipToBounds="True"
GridLinesVisibility="All"
ScrollViewer.HorizontalScrollBarVisibility="Visible"
HeadersVisibility="Column"
VerticalAlignment="Top" Width="600"
Name="gvGrid"
Grid.ColumnSpan="5"
Grid.Column="0"
Grid.Row="1"
Grid.RowSpan="7"
CanUserDeleteRows="True"
CanUserAddRows="False"
CanUserResizeColumns="False"
CanUserReorderColumns="False"
CanUserResizeRows="False"
IsReadOnly="True"
CellStyle="{StaticResource DataGridContentCellCentering}"
HorizontalAlignment="Left"
Height="200"
ColumnWidth="*"
EnableRowVirtualization="True"
HorizontalGridLinesBrush="#E7E5E6"
VerticalGridLinesBrush="#E7E5E6"
ColumnHeaderStyle="{StaticResource HeaderStyle}"
AlternatingRowBackground="#F6F4F5"
AutoGenerateColumns="False"
Background="{x:Null}"
CurrentCellChanged="gvGrid_CurrentCellChanged">
谢谢。
有两个注意事项,你可以考虑改进你的代码> DATAGRID的性能。
首先使用虚拟化(只需将属性EnableColumnVirtualization
和EnableRowVirtualization
设置为true
,并避免将DataGrid
放在ScrollViewer
中,因为这会抵消虚拟化的好处)。第二步,对ItemsSource
属性使用异步绑定,即:
ItemsSource="{Binding Path=YourList, IsAsync=True}"
它们应该会帮助您。EnableColumnVirtualization显示空引用Exception@ArjunPV,请看一看