我有 WPF应用,其中包含 DataGrid 。 DataGrid包含10个DataGridTemplateColumns。我向它添加了4个额外的DataGridTemplateColumns,但之后DataGrid的加载速度非常慢。我使用列表作为 ItemSource 。请帮我解决这个问题。
这是我的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">
先谢谢。
答案 0 :(得分:0)
您可以考虑采取一些预防措施来提高DataGrid
的效果。
首先使用虚拟化(只需将属性EnableColumnVirtualization
和EnableRowVirtualization
设置为true
,并避免将DataGrid
放入ScrollViewer
,因为它会使其无效虚拟化的好处)。第二步,对ItemsSource
属性使用异步绑定,即:
ItemsSource="{Binding Path=YourList, IsAsync=True}"
他们应该帮助你。