WPF ListView bardzo słaba wydajność z dużymi danymi

Doświadczam bardzo słabej wydajności z ListView w WPF, używając około 30000 rekordów. O ile wiem, wirtualizacja powinna być włączona, ponieważ jest to ustawienie domyślne (włączyłem ją nawet jawnie w XAML).

Słaba wydajność manifestuje się w ten sposób:

Bardzo wolno (kilka minut), aby wykonać początkowe wiązanieBardzo powolne (ponad minutę) przewijanieBardzo powoli (ponownie, ponad minutę) po wybraniu rzędu.

Miałem nadzieję, że ktoś przyjrzy się XAML i pozwoli mi się zastanowić.

<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>

Uwaga: źródło ItemsSource jest ustawione w kodzie do ObservableCollection. Jest to zbiór całkiem prostych właściwości (kilka łańcuchów, bool), który jest ViewModelem na Model, który jest (znowu) ciągami znaków i boolami.

Czytam tam, gdzie ludzie używają dużych zestawów rekordów bez żadnych problemów, ale różne rzeczy, które próbowałem, nie działają.

Wszelkie wymagane informacje proszę o informację.

questionAnswers(1)

yourAnswerToTheQuestion