„BindingSource nie może być własnym źródłem danych” - błąd podczas próby zresetowania źródła powiązania z metody w innej klasie
Jesteśmy wiążącyDataGridview
za pomocąBindingSource
. Tak więc w głównym wątku podaliśmy w ten sposób.
class1BindingSource = new BindingSource();
class1BindingSource.DataSource = class1List;
this.dataGridView1.DataSource = class1BindingSource;
Następnie umieściłem w tle pracownika w tle i klikam przycisk.
tj. kliknięciem przycisku
this.backgroundWorker1.RunWorkerAsync()
wBackgroundWorker
DoWork Event
Próbuję zaktualizowaćBindingSource
i tam, próbując zaktualizowaćDataGridview
.
WięcBindingSource
resetowanie odbywa się w metodzie w innej klasie.
DoWork Event
Class2 cl2 = new Class2();
cl2.UpdateBindingSource(class1BindingSource);
UpdateBindingSource Method
public void UpdateBindingSource(BindingSource bs)
{
Class1 c1 = bs.Current as Class1;
for (int i = 0; i < 1000; i++)
{
lock (bs.SyncRoot)
{
c1.MyProperty1 = i;
bs.ResetItem(0);
}
}
}
Teraz otrzymuję wyjątekBindingSource
nie może być własnym źródłem danych. Nie ustawiajDataSource
iDataMember
właściwości do wartości, które odwołują się doBindingSource
.
Jeśli robię to w moimDoWork Event
następnie mogę zresetować element w samym wątku sterującym za pomocąBeginInvoke method
.
Ale tak naprawdę próbuję symulować nasz scenariusz aplikacji. Chcę to rozwiązać w tym formacie.
Czy ktoś może mi z tym pomóc.