Обновление BindingSource в WinForms не обновляет коллекцию источников данных

Я хочу отобразить пользовательскую коллекцию вDataGridView в приложении Windows Forms. Эта пользовательская коллекция реализуетICollection, а такжеIEnumerable, Я создалBindingSource, используя коллекцию в качестве свойства .DataSource.DataGridView настроен использовать мойBindingSource как это's DataSource. Когда я добавляю новый элемент в коллекцию, используяBindingSource.Add() метод,DataGridView корректно обновляется с новым элементом.BindingSource DataSource, с другой стороны, не:

MyCustomCollection myCollection = new MyCustomCollection();

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

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

В приведенном выше коде, myBindingSource 'внутренний список содержит правильное количество записей (3), аDataGridView также содержит три записи, но myCollection содержит только две записи. Я знаю, что изменение базового myCollection НЕ будет обновлятьBindingSource илиDataGridViewтак как это неBindingList, но у меня сложилось впечатление, что обновлениеBindingSource напрямую обеспечит одновременное обновление myCollection.

Есть ли способ использовать коллекцию, которая нетBindingList и обновлять его при взаимодействии сBindingSource напрямую?

Обновить: One way I 'Мы обновили данные по всем частям (Collection, BindingSource, DataGridView) следующим образом:

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

я уверен, чтоЭто лучший способ решить эту проблему, но это единственный метод, которыйЯ получил ожидаемые результаты.

Ответы на вопрос(4)

Ваш ответ на вопрос