WPF ListView 在处理大数据时性能非常差

Gra*_*yDS 2 c# wpf xaml listview

我在 WPF 中使用 ListView 时遇到性能非常差的情况,使用大约 30000 条记录。据我所知,虚拟化应该打开,因为这是默认设置(我什至在 XAML 中显式打开它)。

表现不佳的表现是这样的:

  • 初始绑定非常慢(几分钟)
  • 滚动速度非常慢(超过一分钟)
  • 当您选择一行时,速度非常慢(同样,超过一分钟)。

我希望有人能看一下 XAML 并让我有一些想法。

<ListView Name="grdComms" Grid.Row="0" Grid.Column="0" SelectedItem="{Binding SelectedHeader}"
          VirtualizingStackPanel.IsVirtualizing="True" VirtualizingStackPanel.VirtualizationMode="Recycling"
          ScrollViewer.IsDeferredScrollingEnabled="True">
       <ListView.View>
            <GridView >
                  <GridViewColumn Header="Account Name" DisplayMemberBinding="{Binding Path=AccountName}" Width="150" />
                  <GridViewColumn Header="Account Number" DisplayMemberBinding="{Binding Path=AccountNumber}" Width="120" />
                  <GridViewColumn Header="Type" DisplayMemberBinding="{Binding Path=Type}" Width="80" />
                  <GridViewColumn Header="Delivery" DisplayMemberBinding="{Binding Path=Delivery}" Width="80" />
                  <GridViewColumn Header="Count" DisplayMemberBinding="{Binding Path=RequestCount}" Width="80" />
                  <GridViewColumn Width="80" Header="DeDupe">
                       <GridViewColumn.CellTemplate>
                           <DataTemplate>
                               <StackPanel Width="80">
                                   <CheckBox HorizontalAlignment="Center" IsChecked="{Binding Path=SelectedForProcessing, Mode=TwoWay}"/>
                                </StackPanel>
                            </DataTemplate>
                        </GridViewColumn.CellTemplate>
                  </GridViewColumn>
             </GridView>
      </ListView.View>
</ListView>
Run Code Online (Sandbox Code Playgroud)

注意:ItemsSource 在代码中设置为 ObservableCollection。这是一个非常简单的属性的集合(几个字符串,一个布尔值),它是模型上的一个视图模型,而模型(又是)字符串和布尔值。

我正在阅读人们使用大型记录集而没有任何问题的地方,但我尝试过的各种方法似乎不起作用。

需要更多信息请告诉我。

Gra*_*yDS 6

请无视我。一旦我将 ListView 的 MaxHeight 设置为大于其需要的值,问题就完全消失了。我发誓我试过这个,显然没有。

继续往前走,这里没什么可看的……

灰色的