Si estoy usando un ListView en modo virtual, entonces, según tengo entendido, la vista de lista solo hace un seguimiento de un pequeño número de elementos en la lista. A medida que el usuario se desplaza, recupera de manera dinámica los elementos que necesita mostrar de la lista virtual.¿Cómo agrego/quito elementos a un ListView en modo virtual?
Pero, ¿qué sucede si se agrega o elimina un elemento de la lista maestra? Si se agrega/quita un elemento fuera del rango de índices mostrado por la vista de lista, supongo que la vista de lista mostrará los elementos añadidos/faltantes cuando el usuario se desplaza a ese índice. ¿Es esto correcto? Pero, ¿qué sucede si un elemento se agrega o elimina del rango de índices que el usuario está viendo actualmente? ¿Cómo disparo la vista de lista para actualizar los elementos que está viendo actualmente para mostrar los elementos nuevos/faltantes?
FYI: Estoy usando un ObjectListView si eso hace la diferencia.
Estoy cargando miniaturas individuales para cada elemento de la lista, por lo que debo recibir una notificación cuando el usuario vea cada elemento para poder cargar las miniaturas. Intento evitar cargar todas las miniaturas a la vez, ya que podría mostrar una gran cantidad de elementos. Actualmente llamo a Build() para actualizar VirtualLIstView cuando cambia mi colección. ¿Hay alguna razón por la que me gustaría llamar a Invalidate() sobre Build()? –
Una lista virtual es exactamente el enfoque correcto para hacer lo que desea; he utilizado exactamente la misma estrategia. Y BuildList() es lo mejor: llama a Invalidate() como parte de su procesamiento. ¿Funciona? – Grammarian