WPF DataGrid加载速度很慢

问题描述 投票:0回答:1

我有一个包含DataGrid的WPF应用程序。 DataGrid包含10个DataGridTemplateColumns。我向它添加了4个额外的DataGridTemplateColumns,但之后DataGrid的加载速度非常慢。我使用List作为其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">

提前致谢。

c# wpf list datagrid datagridtemplatecolumn
1个回答
0
投票

您可以考虑采取一些预防措施来改善您的DataGrid的表现。

首先使用虚拟化(只需将属性EnableColumnVirtualizationEnableRowVirtualization设置为true并避免将DataGrid放入ScrollViewer,因为它会使虚拟化的好处无效)。第二步,使用ItemsSource属性的异步绑定,即:

ItemsSource="{Binding Path=YourList, IsAsync=True}"

他们应该帮助你。

© www.soinside.com 2019 - 2024. All rights reserved.