0

Ich habe benutzerdefinierte Elementpanel für Gridview zur Unterstützung variabler Elementhöhe mit dieser link Beitrag von JerryNixon.My Custom Panel unterstützt 3 verschiedene Größe Vorlage (je nach Bild Dimension Ich entscheide, welche Vorlage zu verwenden). Diese benutzerdefinierte Gridview sollte Seitenumbruch haben und es sollte mehr als 200 Elemente unterstützen. Im Moment konnte ich nur 50 Elemente laden und es stürzt ab aufgrund des Ereignisses wegen Speichermangel in 1GB Gerät. Es ist eine der Anforderungen in out-Projekt. Ich weiß, wenn wir benutzerdefinierte Itempanel implementieren, Verluste Verluste Standardvirtualisierung.Windows Phone 8.1 Implementieren von Virtualisierung für benutzerdefinierte Variablengröße Gridview

Ich habe Pin.it App überprüft. Sie haben eine Gridview-Vorlage mit variabler Größe implementiert und die Leistung ist sehr gut, ich könnte mehr als 200 Elemente laden.

Gibt es eine Möglichkeit, Virtualisierung für meine benutzerdefinierte Elemente Panel zu implementieren? Ich habe keine Ahnung, wie wir Virtualisierung implementieren können. Wenn jemand es implementiert hat, bitte geben Sie uns einige Ideen, wie Sie damit beginnen können, damit es uns sehr hilft.

Ich denke nicht, dass Wrappanel-Code zum Posten benötigt wird. Wenn es erforderlich ist, werde ich es posten.

Bitte geben Sie einige Vorschläge. Es wird sehr hilfreich sein :). Danke :)

+0

Sie Displacement Bild in Gridview-Elemente? –

+0

Ja .. ItemTemplate hat hauptsächlich Bild – Archana

Antwort

0

Schließlich haben wir virtualisierte benutzerdefinierte Grdiview unter Bezugnahme auf den Code this Link implementiert. Der im Link angegebene Code dient zur Virtualisierung der horizontalen Rasteransicht. Ich habe den Code ein wenig geändert, um ihn in eine vertikale Gridview zu ändern. Vielen Dank an die Person, die den Code veröffentlicht hat. Es half sehr viel

0

Um die Speicherausnahme zu überwinden, reduzieren Sie einfach die Pixelbreite der Bilder und Sie sparen den Speicher, so dass mehr Elemente auf der Seite geladen werden können.

<Image Stretch="Uniform" Width="150" Height="170"> 
         <Image.Source> 
          <BitmapImage UriSource="{Binding MainImage}" DecodePixelWidth="400"/> 
         </Image.Source> 
        </Image> 

Der obige Code macht den Trick.

+0

Ich weiß das. Wenn wir DecodePixelWidth kleiner als das Bild geben, das bereits vorhanden ist. Das Bild wird unscharf sein. Ich möchte, dass die tatsächliche Virtualisierung wie die Wiederverwendung der Ansichten implementiert wird. Weil Microsoft dies nicht bereitstellt – Archana