2011-10-11 25 views
8

He vinculado con éxito mi DataGridView a una lista. Pero, la grilla no se actualiza cuando programáticamente cambio algunas de las propiedades de uno de los objetos dentro de la lista. Si hago clic en la celda (o minimizo y luego maximizo el formulario), el valor mostrado se actualiza.¿Por qué no se están actualizando las celdas de DataGridView?

He leído here que debo usar una lista de encuadernación. La lista que estoy usando es un tipo de interfaz que no implementa IBindingList. Pero, el tipo concreto que se usa para inicializar la lista hereda fuera de BindingList. ¿Algunas ideas?

+0

¿cuál es su plataforma? WPF? Winforms? Silverlight? (etc.) –

+0

Lo sentimos, son las formas de pago. – bsh152s

Respuesta

9

Su lista debe implementar IBindingList (o sea BindingList) y su objeto debe implementar INotifyPropertyChanged. Ambas condiciones son necesarias para que DataGridView se vincule correctamente.

lo tanto, si el origen de datos sería, por ejemplo, MyList<MyClass>, MyList debe implementar IBindingList y MyClass debe implmenent INotifyPropertyChanged.

Aquí es un claro ejemplo: http://crazorsharp.blogspot.com/2009/06/inotifypropertychanged-how-to-and-when.html

+0

El código que estaba usando implementaba INotifyPropertyChanged y la lista era una lista de enlaces. Pero, una bandera que se estaba configurando estaba desactivando las notificaciones. Esta respuesta me ayudó a resolver esto. – bsh152s

Cuestiones relacionadas