«BindingSource не может быть собственным источником данных» - ошибка при попытке сброса источника привязки из метода в другом классе

Мы связываемDataGridview с помощьюBindingSource, Так что в основной ветке мы так и дали.

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

После этого я поместил фонового работника в форму и запускаю по нажатию кнопки.

т.е. при нажатии кнопки

this.backgroundWorker1.RunWorkerAsync()

вBackgroundWorker DoWork Event я пытаюсь обновитьBindingSource и там, пытаясь обновитьDataGridview.

Так чтоBindingSource сброс выполняется методом в другом классе.

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

Теперь я получаю исключение, какBindingSource не может быть своим собственным источником данных. Не устанавливайтеDataSource а такжеDataMember свойства к значениям, которые относятся кBindingSource.

Если я делаю это в моемDoWork Event тогда я могу сбросить элемент в самом потоке управления, используяBeginInvoke method.

Но на самом деле я пытаюсь смоделировать наш сценарий приложения. Поэтому я хочу решить это в этом формате.

Может ли кто-нибудь помочь мне в этом.

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

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