Tengo un BindingList <> de una clase establecida en la propiedad DataSource de un BindingSource, que a su vez se establece en la propiedad DataSource de un DataGridView.BindingList <> evento ListChanged
1. Tengo entendido que cualquier adición a la lista activará un evento ListChanged que se propagará a través de BindingSource y luego a DataGridView, que se actualizará para mostrar el cambio. Esto sucederá porque los eventos se han conectado automáticamente. (¿Sí?)
Esto está bien y bien cuando todo el trabajo se realiza en el subproceso de interfaz de usuario, pero cuando la lista se crea y cambia de un subproceso que no es UI, finalmente se produce una excepción cruzada cuando la cuadrícula esta actualizado Puedo entender por qué sucede esto, pero no cómo solucionarlo ...
2. Lo que estoy teniendo dificultades para comprender, es dónde debería interceptar mejor el evento ListChanged para intentar organizar las cosas en el hilo de la interfaz de usuario ? Supongo que necesito una referencia a la secuencia de comandos de interfaz de usuario de alguna manera para ayudar a hacer esto?
He leído muchas publicaciones/artículos sobre esto, pero estoy luchando porque no entiendo completamente los mecanismos en el trabajo aquí.
Nunca volveré a cambiar ningún elemento una vez que esté en la lista, solo se agregarán e inicialmente se borrará la lista.
(estoy usando .NET 2,0)
IMPRESIONANTE. Si pudiera votar esto un millón de veces, lo haría. – bulltorious
Lo entiendo, pero igual es mágico y hace lo que todos quieren hacer. Actualice los controles a través de la estructura de datos y no tenga que preocuparse por la invocación. – Beached
@bulltorious podrías ofrecer una recompensa :) –