[英]WPF DataGrid Loading very slow
我有一個包含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">
提前致謝。
您可以考慮采取幾種預防措施來提高DataGrid
的性能。
首先使用虛擬化(只需將屬性EnableColumnVirtualization
和EnableRowVirtualization
設置為true
並避免將DataGrid
放在ScrollViewer
,因為它會使虛擬化的好處無效)。 第二步,對ItemsSource
屬性使用異步綁定,即:
ItemsSource="{Binding Path=YourList, IsAsync=True}"
他們應該幫助您。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.