Question

J'ai une application avec un grand ListView qui est terriblement lente, alors j'implémente VirtualMode. MSDN ne semble pas expliquer comment j'ajouterais ou supprimerais de nouveaux éléments au milieu de la liste.

Par exemple, le ListView a 1000 éléments (représentant des fichiers sur le disque) et après la population initiale de ListView (selon l'événement RetrieveVirtualItem), certains fichiers seront supprimés et d'autres ajoutés de sorte que VirtualListSize pourrait même être identique après la mise à jour. .

Question 1) Comment puis-je dire au ListView 'ces éléments ont été modifiés / supprimés' pour qu'il effectue une nouvelle interrogation?

En outre, certains fichiers ne font que changer et j'aimerais refléter leur statut modifié dans la liste.

Question 2) Comment trouver un élément dans la liste, sachant que VirtualMode ne me permet pas d’accéder à la collection Items que j’utilisais auparavant (j’utilisais la méthode ContainsKey sur cette collection).

Cela semble facile, mais je ne le vois pas moi-même. Une aide grandement appréciée.

Ryan

Était-ce utile?

La solution

Pour ajouter ou supprimer des éléments, simplay définit VirtualListSize sur le nombre total d’éléments. Pour actualiser des éléments individuels, utilisez RedrawItems.

Pour localiser un élément particulier, vous utilisez le conteneur que vous avez déjà, ne retournez pas à ListView. Les indications de votre liste doivent correspondre aux éléments de ListView.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top