2010-01-06 24 views
5

que pueblan la GridView.DataSource de un modelo ADO.NET Entity Framework:Cómo actualizar el DataSource en WinForms DataGridView?

gwTimeLog.DataSource = _entities.TimeLogs; 

Cuando se añade una nueva fila a los _entities, trato de actualizar la red (intentado usar el mismo comunicado que el anterior, poniéndolo nulo, volviendo a _entities.TimeLogs, etc ...), pero la grilla simplemente no se actualizará. Aunque _entities.TimeLogs realmente contiene las nuevas filas.

¿Qué me estoy perdiendo?

Respuesta

5

La respuesta es que el gridview conectado a la BindingList lugar de la lista .

10

ANTIGUA RESPUESTA: ¿Intentó llamar a GridView.DataBind()?

Woops, pensé que esto era un DataGrid de WebForms.

Si está en WinForms, es posible que desee examinar la clase BindingSource. La unión a la clase en lugar de directamente a su lista proporcionará notificación de actualización, etc.

El siguiente código funciona para mí:

 List<Person> names = new List<Person>(); 
     names.Add(new Person(){ 
      FirstName = "Steve", 
      LastName = "Jobs" 
     }); 
     names.Add(new Person() 
     { 
      FirstName = "Bill", 
      LastName = "Gates" 
     }); 

     BindingSource source = new BindingSource(); 
     source.DataSource = names; 
     dataGridView1.DataSource = source; 

     names.Add(new Person() 
     { 
      FirstName = "Steve", 
      LastName = "Balmer" 
     }); 

     source.ResetBindings(false); 
+0

WinForms, ASP.NET no – AngryHacker

+0

Mi error. Revisado. – hackerhasid

+0

BindingSource @ MSDN: http://msdn.microsoft.com/en-us/library/system.windows.forms.bindingsource.aspx – hackerhasid

-1
grid.EndEdit(); 
BindingSource.EndEdit(); 
_entities = new dbEntities(); 
firmeBindingSource.DataSource=_entities.TimeLogs; 
+4

¡Bienvenido a stackoverflow! Siempre es mejor proporcionar una breve descripción de un código de muestra para mejorar la precisión de la publicación :) –

0

Esto funciona para mí:

dataGridView.DataSource = null; 
dataGridView.DataSource = listOfSomething; 
+0

Si bien este código puede responder a la pregunta, proporcionar un contexto adicional con respecto a por qué y/o cómo este código responde la pregunta mejora su valor a largo plazo. Por ejemplo, ¿hay alguna razón por la que establecer DataSource en nulo y luego en algo más funciona? – ryanyuyu

+0

Este código causa la actualización de todo el contenido de la cuadrícula de datos, al tiempo que vuelve a configurar el origen de datos en el mismo valor: no es – Netstep

Cuestiones relacionadas