WPF ListView rendimiento muy pobre con datos grandes

Estoy experimentando un rendimiento muy pobre con un ListView en WPF, utilizando alrededor de 30000 registros. Por lo que sé, la virtualización debería estar activada, ya que esta es la opción predeterminada (incluso la encendí explícitamente en el XAML).

El mal desempeño se manifiesta de esta manera:

Muy lento (un par de minutos) para hacer el enlace inicialDesplazamiento muy lento (más de un minuto)Muy lento (de nuevo, más de un minuto) cuando selecciona una fila.

Esperaba que alguien echara un vistazo al XAML y me dejara tener algunos pensamientos.

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

Nota: el ItemsSource se establece en código, a un ObservableCollection. Esta es una colección de propiedades bastante simples (un par de cadenas, un bool), que es un ViewModel en el modelo, que es (de nuevo) cadenas y bools.

Estoy leyendo donde la gente está usando conjuntos de discos grandes sin problemas, pero las diversas cosas que he intentado no parecen funcionar.

Cualquier otra información requerida por favor hágamelo saber.

Respuestas a la pregunta(1)

Su respuesta a la pregunta