Refrescar auxmodel en listview QML


([N1] Angel Carrizo) #1

Buenas Tardes;
Tengo un listview donde cargo los datos de una tabla, por cada item cargo un modelo, auxmodel, dentro de este tengo varias columnas, por cada columna un “mousearea” que al clicar ejecuta un proceso, refresca dicho modelo y muestra una imagen, todo funciona correctamente si en el proceso modifico la ficha en curso. El problema viene cuando clico en un item, ejecuto el proceso que modifica varias fichas de esa lista y me pasa el item en curso al que corresponda, todos los auxmodels de las fichas que están entre el item en curso y el último item no se refrescan, por lo que no muestran la imagen, sin embargo si bajo la lista hasta que no veo esos item y vuelvo a subir para verlos se ha refrescado y muestra la imagen.

Pruebo a refrescar el auxmodel con listview.model.ResetModel(); pero no lo hace.

¿Cómo podría hacer para que se refrescasen esos item que quedan sin refrescar automáticamente?

Gracias

Un Saludo


([N4] Jorge) #2

No puedes sin forzar la recarga. Es un gran problema que hay que tener en cuenta en el diseño de tus aplicaciones.

Atentamente,
Jorge Hontoria

http://tipesoft.com


([N4] Jorge) #3

Resetear el modelo… void ResetModel();


([N1] Angel Carrizo) #4

Muchas Gracias, lo he probado pero al resetear el primer modelo como dices tarda aproximadamente 30 segundos cada vez y tengo que hacerlo muchas veces.

He utilizado un listview y un modelo auxiliar ya que antes lo hice solo con listview y cuando reseteaba el modelo me ponía siempre el item en curso al final de la pantalla, además tardaba bastante en resetear, por lo que pense en utilizar el modelo auxiliar y solo resetear este, pero claro tengo el problema antes mencionado.

¿Habría alguna forma de resetear solo determinadas fichas de la lista para que tardase menos?

¿O alguna forma de recorrer solo determinadas fichas del modelo principal y refrescar el modelo auxiliar de cada uno cuando la ficha esté en curso?

Muchas Gracias, estoy un poco verde en QML.

Un Saludo