簡體   English   中英

WPF DataGrid加載非常慢

[英]WPF DataGrid Loading very slow

我有一個包含DataGridWPF應用程序 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">

提前致謝。

您可以考慮采取幾種預防措施來提高DataGrid的性能。

首先使用虛擬化(只需將屬性EnableColumnVirtualizationEnableRowVirtualization設置為true並避免將DataGrid放在ScrollViewer ,因為它會使虛擬化的好處無效)。 第二步,對ItemsSource屬性使用異步綁定,即:

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

他們應該幫助您。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM