«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
.
Но на самом деле я пытаюсь смоделировать наш сценарий приложения. Поэтому я хочу решить это в этом формате.
Может ли кто-нибудь помочь мне в этом.