„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.

questionAnswers(3)

yourAnswerToTheQuestion