Pregunta

Tengo una aplicación con un ListView grande que es terriblemente lento, así que estoy implementando VirtualMode. MSDN no parece cubrir cómo agregaría y eliminaría nuevos elementos en medio de la vista de lista.

Por ejemplo, el ListView tiene 1000 elementos (que representan los archivos en el disco) y después del llenado inicial del ListView (por el evento RetrieveVirtualItem), algunos archivos se eliminarán y algunos se agregarán para que VirtualListSize pueda ser el mismo después de la actualización. .

Pregunta 1) ¿Cómo le digo a ListView 'estos elementos se han cambiado / eliminado' para que sean necesarios?

Además, algunos de los archivos simplemente cambian y me gustaría reflejar su estado cambiado en la vista de lista.

Pregunta 2) ¿Cómo puedo encontrar un elemento en la vista de lista dado que VirtualMode no me permite acceder a la colección de elementos que estaba usando antes (utilicé el método ContainsKey en esa colección)?

Suena fácil, pero no puedo verlo. Ayuda muy apreciada.

Ryan

¿Fue útil?

Solución

Para agregar o eliminar elementos, simplay establece VirtualListSize en el recuento total de elementos. Para actualizar elementos individuales use RedrawItems.

Para localizar un elemento en particular, usa el contenedor que ya tiene, no regrese a ListView. Las indicaciones dentro de su lista deben coincidir con los elementos de ListView.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top