La actualización de BindingSource en WinForms no actualiza la colección de fuentes de datos

Quiero mostrar una colección personalizada en unDataGridView en una aplicación de Windows Forms. Esta colección personalizada implementaICollectionyIEnumerable. He establecido unBindingSource, utilizando la colección como la propiedad .DataSource. losDataGridView está configurado para usar miBindingSource ya que es DataSource. Cuando agrego un nuevo artículo a la colección usando elBindingSource.Add() método, elDataGridView Actualiza correctamente con el nuevo elemento. losBindingSource DataSource, por otro lado, no:

MyCustomCollection myCollection = new MyCustomCollection();

myCollection.Add(myCustomObject1);
myCollection.Add(myCustomObject2);

myBindingSource.DataSource(myCollection);
myBindingSource.Add(myCustomObject3);

En el código anterior, la Lista interna de myBindingSource contiene el número correcto de registros (3), y elDataGridView también contiene tres registros, pero myCollection solo contiene dos registros. Sé que cambiar el myCollection subyacente NO actualizará elBindingSource o laDataGridView, como no es unBindingList<T>, pero estaba bajo la impresión de que actualizar unBindingSource directamente aseguraría que myCollection se actualizara al mismo tiempo.

¿Hay alguna manera de usar una colección que no sea unaBindingList<T> y tenerlo actualizado al interactuar con elBindingSource ¿directamente?

Actualizar: Una forma en que he actualizado los datos en todas las partes (Collection, BindingSource, DataGridView) es la siguiente:

myCollection.Add(myCustomObject3);
myBindingSource.DataSource = null;
myBindingSource.DataSource = myCollection;

Estoy bastante seguro de que hay una mejor manera de atacar este problema, pero este es el único método que ha generado los resultados que esperaba.

Respuestas a la pregunta(4)

Su respuesta a la pregunta