Aktualizacja BindingSource w WinForms nie aktualizuje kolekcji Datasource

Chcę wyświetlić kolekcję niestandardową w aDataGridView w aplikacji Windows Forms. Ta niestandardowa kolekcja realizujeICollection, iIEnumerable. UstawiłemBindingSource, używając kolekcji jako właściwości .DataSource. TheDataGridView jest ustawiony na używanie mojegoBindingSource jako źródło danych. Kiedy dodaję nowy element do kolekcji za pomocąBindingSource.Add() metoda,DataGridView aktualizuje się poprawnie z nowym elementem. TheBindingSource Z drugiej strony DataSource:

MyCustomCollection myCollection = new MyCustomCollection();

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

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

W powyższym kodzie wewnętrzna lista myBindingSource zawiera odpowiednią liczbę rekordów (3) iDataGridView zawiera również trzy rekordy, ale myCollection zawiera tylko dwa rekordy. Wiem, że zmiana podstawowej myCollection NIE spowoduje aktualizacjiBindingSource alboDataGridView, ponieważ nie jest toBindingList<T>, ale miałem wrażenie, że aktualizujęBindingSource bezpośrednio zapewni, że myCollection zostanie zaktualizowany w tym samym czasie.

Czy istnieje sposób na użycie kolekcji, która nie jestBindingList<T> i zaktualizuj go podczas interakcji zBindingSource bezpośrednio?

Aktualizacja: W jeden sposób otrzymałem dane zaktualizowane we wszystkich częściach (Collection, BindingSource, DataGridView) w następujący sposób:

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

Jestem pewien, że istnieje lepszy sposób na zaatakowanie tego problemu, ale jest to jedyna metoda, która wygenerowała oczekiwane rezultaty.

questionAnswers(4)

yourAnswerToTheQuestion