Hoy voy a exponer un ejemplo sobre qué hay que hacer cuando gestionamos datos con un BindingNavigator enlazado con un BindingSource.
En muchos casos, estaremos tratando tablas cuyas filas requieran de ciertos datos con un valor por defecto, como pueden ser identificadores con referencias a otras tablas (propagación de claves en modelo entidad relación, datos fijos, etc.).
Para ello tenemos que implementar el siguiente código en el evento AddingNew del BindingSource. En nuestro ejemplo fijamos el valor de un campo llamado “idreferencia” que suponemos que es la clave principal de otra tabla y dos campos de ejemplo llamados “campo1” y “campo2” que al no permitir valores nulos, los fijamos a String.Empty.
El código es el siguiente:
private void bsEjemplo_AddingNew(object sender, AddingNewEventArgs e)
{
DataView vista = bsEjemplo.List as DataView;
DataRowView fila_nueva = vista.AddNew();
fila_nueva[“idreferencia”] = this.id;
fila_nueva[“campo1”] = String.Empty;
fila_nueva[“campo2”] = String.Empty;
e.NewObject = fila_nueva;
bsEjemplo.MoveLast();
}
{
DataView vista = bsEjemplo.List as DataView;
DataRowView fila_nueva = vista.AddNew();
fila_nueva[“idreferencia”] = this.id;
fila_nueva[“campo1”] = String.Empty;
fila_nueva[“campo2”] = String.Empty;
e.NewObject = fila_nueva;
bsEjemplo.MoveLast();
}