Wenn ich eine ListView im virtuellen Modus verwende, dann verfolgt die Listenansicht nach meinem Verständnis nur eine kleine Anzahl von Elementen in der Liste. Während der Benutzer scrollt, ruft er dynamisch Elemente ab, die aus der virtuellen Liste angezeigt werden sollen.Wie kann ich Elemente zu einem ListView im virtuellen Modus hinzufügen/entfernen?
Aber was ist, wenn ein Element hinzugefügt oder aus der Hauptliste entfernt wird? Wenn ein Element außerhalb des Bereichs von Indizes hinzugefügt oder entfernt wird, der von der Listenansicht angezeigt wird, würde ich annehmen, dass die Listenansicht die hinzugefügten/fehlenden Elemente anzeigen würde, wenn der Benutzer zu diesem Index scrollt. Ist das richtig? Was aber, wenn ein Element zum Indexbereich hinzugefügt/entfernt wird, den der Benutzer gerade anzeigt? Wie trigge ich die Listenansicht an, um die Elemente, die gerade angezeigt werden, zu aktualisieren, um die neuen/fehlenden Elemente anzuzeigen?
FYI: Ich verwende eine ObjectListView, wenn das einen Unterschied macht.
Ich lade einzelne Thumbnails für jedes Element in der Liste, so dass ich benachrichtigt werden muss, wenn der Benutzer jedes Element anzeigt, damit ich die Thumbnails laden kann. Ich versuche zu vermeiden, alle Thumbnails auf einmal zu laden, da ich möglicherweise eine große Anzahl von Gegenständen zeigen könnte. Momentan rufe ich Build() auf, um die VirtualLIstView zu aktualisieren, wenn sich meine Sammlung ändert. Gibt es einen Grund, dass ich Invalidate() über Build() aufrufen möchte? –
Eine virtuelle Liste ist genau der richtige Ansatz, um zu tun, was Sie wollen - ich habe genau die gleiche Strategie verwendet. Und BuildList() ist am besten - es ruft Invalidate() als Teil seiner Verarbeitung auf. Funktioniert es? – Grammarian