Cuando se establece el DataSource
property a null
, que está eliminando esencialmente todos los datos de la DataGridView
(puesto que no sabe lo que se una a más).
Tiene dos opciones aquí. El primero es actualizar la fuente de datos subyacente. Supongamos que es un DataTable
. En este caso, usted haría algo como:
DataTable dt = dataGridView1.Source as DataTable;
dt.Rows.Add(new object[] { ... });
Y entonces el DataGridView
se darán cuenta de los cambios (tenga en cuenta que si no son vinculantes a algo que no implementa la INotifyCollectionChanged
interface, tendrá llamar al ResetBindings
method para obtener la cuadrícula para actualizar).
La otra opción es dejar que el DataGridView
administre las filas. Puede hacer esto añadiendo manualmente cada elemento con el Add
method en el DataGridViewRowCollection
devuelto por el Rows
property:
foreach (var item in source)
{
dataGridView1.Rows.Add("1", "2", "3", ...);
}
Yo no diría que la segunda solución es óptima , pero funcionará.
Finalmente, suponiendo que está vinculando a DataTable
(o alguna otra materialización de los datos de una fuente de datos subyacente), esto no hace nada para actualizar la fuente de datos subyacente (que sería una pregunta separada).
Tnx, ¿me puede mostrar cómo agregar una fila a mi DataSource? Tengo otra DataGridView con datos que me gustaría agregar a mi primer GridView. – Bodi
Si su backing store es una tabla SQL, me imagino que simplemente haría un INSERT en esa tabla. –
No es de SQL ... algunos de mis datos se generan para agregarlos a la primera tabla e imprimirlos;) – Bodi