Buenas,
Esta es la situación: tengo un DataGridView que tiene como DataSource un BindingList con una clase personalizada que yo hice.
Esto se muestra perfecto.
Lo que quiero hacer ahora es colocar un botón "eliminar" que borre de la colección el objeto correspondiente a la fila eliminada, y que cuando eso suceda, se dispare un evento que replique el cambio a una base de datos. O sea, cuando se borra de la colección en memoria, también debe borrarse de la base de datos.
Este es el código que tengo:
Botón Eliminar
Código:
private void btEliminar_Click(object sender, EventArgs e)
{
dgvRef.Rows.Remove(dgvRef.SelectedRows[0]);
}
Método carga datos
Código:
private void cargaDatos()
{
listadoRef = AccesoDatos.listadoRef();
dgvRef.DataSource = listadoRef;
}
listadoRef es un BindingList<ClasePersonalizada>
dgvRef es un DataGridView
Hasta aqui todo funciona bien, si presiono el botón eliminar, efectivamente desaparece del BindingList el objeto seleccionado.
Ahora, cuando suscribo al evento del BindingList, no encuentro de donde sacar el contenido que tenía el objeto borrado...
El sender solo tiene los elementos de la lista actuales, o sea, los que quedaron ...
Código:
void listadoEmpleados_ListChanged(object sender, ListChangedEventArgs e)
{
if (e.ListChangedType == ListChangedType.ItemDeleted)
{
AccesoDatos.eliminarRef(codRef);
}
}
¿Alguna idea? ¿Se entendió bien?
Saludos y muchas gracias por su tiempo.