2016-04-15 9 views
1

Ich habe eine ListView mit etwa 700 Einträge (ein Bild pro Eintrag). Die ListView funktioniert im vertikalen Bildlaufmodus einwandfrei. Aber wenn ich es in Horizontal ändere, stürzt es am Telefon mit einer OutOfMemory Exception ab.
ich ändern, um die Scroll-Richtung mit dem Code von Microsoft:C#/UWP OutOfMemory bei Änderung ListView in horizontale

 <ListView.ItemsPanel> 
      <ItemsPanelTemplate> 
       <StackPanel Orientation="Horizontal"/> 
      </ItemsPanelTemplate> 
     </ListView.ItemsPanel> 

Es scheint, wie Herr von Windows versucht, die kompletten Liste auf einmal zu laden, wenn die orienation geändert wird. Jeder andere erlebt dieses Problem, vielleicht sogar eine Lösung?

+0

Hat der Inhalt Ihres ListView Bindungen? Hast du eine UWP App? –

Antwort

2

Mit StackPanel verlieren Sie die Virtualisierung. So sind alle 700 Einträge gleichzeitig im Speicher, wenn Sie durch die Liste blättern. Verwenden Sie VirtualizingStackPanel oder besser, verwenden Sie GridView anstelle von ListView.

+1

Darf ich fragen, warum es GridView über ListView besser wäre? – fillobotto

+0

Danke das hat den Trick gemacht. Schade, dass MS dies auf ihrer Hilfeseite nicht erwähnt. – Thommy

+0

@fillobotto GridView ist im Grunde genommen ein ListView, der für horizontales Scrollen gedacht ist. Zumindest in 8.1. –