Recibo el siguiente mensaje cuando intento eliminar el último elemento en una vista de cuadro de datos.InvalidOperationException en Databinding al eliminar el último elemento en la lista
DataBinding no se puede encontrar una fila en la lista que sea adecuada para todas las vinculaciones.
Tengo mi configuración de enlace de la siguiente manera.
ExtendedBindingList<MyClass> bl = new ExtendedBindingList<MyClass>(GetDataFromDB());
BindingSource bs = new BindingSource();
bs.DataSource = bl;
dgv.DataSource = bs;
ExtendedBindingList es sólo algo sencillo me tiró juntos para implementar clasificación y filtrado y un poco de persistencia de estado básico. dgv es DataGridView. GetDataFromDB devuelve una lista de MyClass.
El problema sólo surge cuando intento para eliminar el último elemento de la DataGridView usando:
bs.RemoveCurrent();
que funciona en cualquier otro momento. Mi única sugerencia para una solución es eliminar todas las vinculaciones y volver a aplicarlas, pero esto no parece una solución ideal.
EDIT La excepción solo se produce después de que BindingList elimine con éxito el último elemento en cuestión. Se arroja en código externo, por lo que no puedo decir exactamente qué lo está lanzando.
Entonces, aquí estoy, pidiendo SO por algo de ayuda :).
Gracias de antemano, Justin
Estoy usando un DataGridView no es un Grid, pero eso es esencialmente lo que estoy usando también. Funciona siempre, excepto cuando elimino el último elemento. –
Es un DataGridView en mi ejemplo. BindingSource también se usa, pero elimino de BindingListEx, no de BindingSource. Solo prueba este código También creo que su problema está relacionado de alguna manera con la última fila, que es para agregar filas rápidamente (AllowUserAddNewRows = true). Recuerdo que tuve un problema y luego decidí desactivarlo (establezca AllowUserAddNewRows en falso). – nightcoder
Hmm, voy a intentarlo. –