Se sto usando un ListView in modalità virtuale, quindi, a quanto ho capito, la visualizzazione elenco tiene traccia solo di un piccolo numero di elementi nell'elenco. Mentre l'utente scorre, recupera in modo dinamico gli elementi che deve mostrare dalla lista virtuale.Come aggiungere/rimuovere elementi a un ListView in modalità virtuale?
Ma cosa succede se un articolo viene aggiunto o rimosso dall'elenco principale? Se un articolo viene aggiunto/rimosso al di fuori dell'intervallo di indici mostrato dalla visualizzazione elenco, suppongo che la visualizzazione elenco mostri gli elementi aggiunti/mancanti quando l'utente scorre a tale indice. È corretto? Ma cosa succede se un articolo viene aggiunto/rimosso dall'intervallo di indici che l'utente sta attualmente visualizzando? Come faccio ad attivare la visualizzazione elenco per aggiornare gli elementi attualmente visualizzati per mostrare gli elementi nuovi/mancanti?
FYI: Sto utilizzando un ObjectListView se questo fa alcuna differenza.
Sto caricando le singole anteprime per ciascun elemento nell'elenco, quindi è necessario ricevere una notifica quando l'utente sta visualizzando ciascun elemento in modo da poter precaricare le miniature. Sto cercando di evitare di caricare tutte le miniature in una volta poiché potrei potenzialmente mostrare un numero elevato di elementi. Attualmente sto chiamando Build() per aggiornare VirtualLIstView quando la mia collezione cambia. C'è una ragione per cui vorrei chiamare Invalidate() su Build()? –
Una lista virtuale è esattamente l'approccio giusto per fare ciò che vuoi: ho usato esattamente la stessa strategia. E BuildList() è il migliore - chiama Invalidate() come parte del suo processo. Funziona? – Grammarian