[英]WPF DataGrid Loading very slow
I have a WPF Application which contains a DataGrid . 我有一个包含DataGrid的WPF应用程序 。 The DataGrid contains 10 DataGridTemplateColumns.
DataGrid包含10个DataGridTemplateColumns。 I add 4 additonal DataGridTemplateColumns to it,but after that ththe DataGrid loads very slowly.
我向其中添加了4个附加的DataGridTemplateColumns,但是之后DataGrid的加载速度非常慢。 I use List as its ItemSource .
我使用List作为其ItemSource 。 Please help me to solve the issue.
请帮我解决问题。
This is my DataGrid XAML 这是我的DataGrid XAML
<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">
Thanks in Advance. 提前致谢。
There are a couple of precautions you can consider for improving your DataGrid
's performance. 您可以考虑采取几种预防措施来提高
DataGrid
的性能。
First of all use virtualization (just set properties EnableColumnVirtualization
and EnableRowVirtualization
to true
and avoid to put your DataGrid
in a ScrollViewer
, since it nullifies virtualization's benefits). 首先使用虚拟化(只需将属性
EnableColumnVirtualization
和EnableRowVirtualization
设置为true
并避免将DataGrid
放在ScrollViewer
,因为它会使虚拟化的好处无效)。 Second step, use an async binding for the ItemsSource
property, ie: 第二步,对
ItemsSource
属性使用异步绑定,即:
ItemsSource="{Binding Path=YourList, IsAsync=True}"
They should help you. 他们应该帮助您。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.