/ / WPF ListView veľmi zlý výkon s veľkými dátami - c #, wpf, xaml, listview

WPF ListView veľmi slabý výkon s veľkými dátami - c #, wpf, xaml, listview

S aplikáciou aListView vo WPF, s použitím približne 30000 záznamov. Pokiaľ viem, virtualizácia by mala byť zapnutá, pretože je to predvolené nastavenie (dokonca som ju zapol explicitne v XAML).

Nízka výkonnosť sa prejavuje takto:

  • Veľmi pomalé (pár minút) na vykonanie počiatočnej väzby
  • Veľmi pomalé (viac ako minútu) rolovanie
  • Keď zvolíte riadok, veľmi pomalé (znova, viac ako minútu).

Dúfal som, že sa niekto pozrie na XAML a dovoľte mi, aby som mal nejaké myšlienky.

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

Poznámka: ItemSource je nastavený v kóde na ObservableCollection. Jedná sa o kolekciu celkom obyčajných vlastností (pár reťazcov, bool), čo je ViewModel na modeli, čo je (opäť) reťazec a bools.

Ja čítam, kde ľudia používajú veľké sady záznamov bez problémov, ale zdá sa, že rôzne veci, ktoré som sa snažil don.

Akékoľvek ďalšie požadované informácie, dajte mi prosím vedieť.

odpovede:

3 pre odpoveď č. 1

Prosím, ignorujte ma. Problém úplne zmizne, akonáhle nastavím MaxHeight ListView na niečo väčšie, než potrebuje. Prisahal by som slepý, že som to skúšal, samozrejme nie.

Pohybujte sa, nič tu nie je vidieť ...

šedá