Estoy usando VS 2008/C# y vinculando una lista local de clases de ayuda como el DataSource para un control DataGridView. Llamar al método Remove() en mi lista de clases de ayudante desencadena el evento CellFormatting de DataGridView, que tiene sentido (un poco).Eliminar última fila Databound DataGridView C#
Al eliminar lo que sea DataBoundItem de la última fila de la grilla (siempre que la grilla tenga más de una fila), la colección Filas de DataGridView no se actualiza antes de que se desate este evento. Por lo tanto, en el controlador de eventos CellFormatting, obtengo una excepción IndexOutOfRangeException porque la colección Filas es demasiado grande.
He intentado eliminar la fila utilizando el método DataGridView.Rows.Remove(), y el enlace utilizando un BindingSource en lugar de enlazar la Lista directamente como fuente de datos.
Encontré algunas referencias a esta ocurrencia a través de Google, pero las respuestas no aparecían o decían que usaban un método Delete() en la colección DataGridView o DataGridView.Rows, ninguna de las cuales existe actualmente.
La ordenación tampoco parece ser el problema, ya que realizar/no realizar una clasificación da como resultado el mismo resultado.
La única excepción a la "última fila" que es un problema para la eliminación es si el DataGridView contiene solo una fila, en cuyo caso todo funciona correctamente.
configuración para anular y volver a la colección trabajada. – Pat
Marcando esto como la respuesta exceptuada en una vieja y loca pregunta. :-) Creo que probé la sugerencia sin éxito en ese momento. Pero parece haber funcionado para otros. –