Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF数据网格加载非常慢_C#_Wpf_List_Datagrid_Datagridtemplatecolumn - Fatal编程技术网

C# WPF数据网格加载非常慢

C# WPF数据网格加载非常慢,c#,wpf,list,datagrid,datagridtemplatecolumn,C#,Wpf,List,Datagrid,Datagridtemplatecolumn,我有一个WPF应用程序,它包含一个数据网格。DataGrid包含10个DataGridTemplateColumns。我向其中添加了4个附加的DataGridTemplateColumns,但之后DataGrid的加载速度非常慢。我使用列表作为其项目源。请帮我解决这个问题 这是我的DataGrid XAML <DataGrid VirtualizingStackPanel.IsVirtualizing="False" ScrollViewer.Vertica

我有一个WPF应用程序,它包含一个数据网格。DataGrid包含10个DataGridTemplateColumns。我向其中添加了4个附加的DataGridTemplateColumns,但之后DataGrid的加载速度非常慢。我使用列表作为其项目源。请帮我解决这个问题

这是我的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}"

它们应该会帮助您。

EnableColumnVirtualization显示空引用Exception@ArjunPV,请看一看