“BindingSource não pode ser sua própria fonte de dados” - erro ao tentar redefinir a fonte de ligação de um método em outra classe

Nós estamos ligando umDataGridview usandoBindingSource. Então, no segmento principal, temos dado assim.

            class1BindingSource = new BindingSource();
            class1BindingSource.DataSource = class1List;  
            this.dataGridView1.DataSource = class1BindingSource;

Depois disso, eu coloquei um trabalhador de segundo plano no formulário e está acionando em um clique de botão.

ou seja, no clique do botão

this.backgroundWorker1.RunWorkerAsync()

NoBackgroundWorker DoWork Event Eu estou tentando atualizar oBindingSource e lá tentando atualizar oDataGridview.

Então oBindingSource A redefinição é feita em um método em outra classe.

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);
                }
            }
        }

Agora estou recebendo uma exceção comoBindingSource não pode ser sua própria fonte de dados. Não ajuste oDataSource eDataMember propriedades para valores que remetem aBindingSource.

Se eu estou fazendo isso na minhaDoWork Event então eu posso redefinir o item no próprio segmento de controle usandoBeginInvoke method.

Mas, na verdade, estou tentando simular nosso cenário de aplicação. Então eu quero resolver isso neste formato.

Alguém pode me ajudar nisso.

questionAnswers(3)

yourAnswerToTheQuestion