Error de defecto en el Datagridview

19/12/2006 - 17:15 por ANT1 | Informe spam
Tengo una aplicacion con un DatagridView al cual le paso los datos
atraves de un binding source. Los datos estan en un IList.

He hecho este tipo de aplicacion un par de veces mas, y sencillamente
gestiono una base de datos y dichos datos los saco por pantalla
mediante el datagridview. Nunca me habia dado este error.

Imaginaros que he hecho una busqueda con filtro en la base de datos, no
ha encontrado ningun objeto similar, y por tanto tengo un IList vacio
que será pasado al datagridview como fuente de datos nueva, y por
tanto todos los objetos que habia en el datagrid view, todas las
lineas, seran borrados.

Y es que al tratar de pasar un IList vacio (con count=0, no nulo), el
programa, segun va borrando celda a celda de los objetos que antes se
representaban en el datagridview va sacando ventanas con la cabecera:

"DataGridView Default Error Dialog"

No es que se produzca una excepcion concreta que me detenga la App, si
no que sale una ventana, le doy a aceptar y me sale otra hasta que se
han borrado todas las celdas.

El mensaje dentro de la ventana el mismo, mas o menos todo el rato. Me
indica que la ventana que se va a borrar no tiene dato, y la borra.
Tengo un codigo y una configuracion identica en otro formulario del
proyecto, y no da ningun error.

¿Porque puede ser esto?

Le da igual que haga un clear de la List que tiene el databinding o lo
que sea. El error solo aparece cuando se pasa de tener alguna linea a
no tener ninguna.
 

Leer las respuestas

#1 ANT1
19/12/2006 - 17:28 | Informe spam
Se me ha olvidado comentar antes que si hago paso a paso todo el
proceso, no se produce ningun error, y al datagridview se actualiza
como si nada.

He solucionado el problema mediante este codigo:

articuloDataGridView.DataSource = null;
articuloBindingSource.DataSource = listaArticulos;
articuloDataGridView.DataSource = articuloBindingSource;
articuloDataGridView.Refresh();

Donde, como se puede ver, elimino la fuente de datos de mi
datagridview, actualizo la fuente de mi bindingsource y le vuelvo a
asignar como fuente a mi datagridview dicho bindingsource. Antes
sencillamente tenia esto:

articuloBindingSource.DataSource = listaArticulos;
articuloDataGridView.Refresh();

El codigo que se ve arriba lo he hecho un monton de veces y nuca habia
dado problema.

¿Porque ahora si?

Se que he dicho que lo he solucionado, pero me gustaria saber el porque
de este error.

Gracias

Preguntas similares