"BindingSource no puede ser su propia fuente de datos": error al intentar restablecer la fuente de enlace desde un método de otra clase
Estamos vinculando aDataGridview
utilizandoBindingSource
. Así que en el hilo principal hemos dado así.
class1BindingSource = new BindingSource();
class1BindingSource.DataSource = class1List;
this.dataGridView1.DataSource = class1BindingSource;
Después de eso, he colocado un trabajador de fondo en el formulario y se está activando con un clic del botón.
es decir, en el botón haga clic
this.backgroundWorker1.RunWorkerAsync()
En elBackgroundWorker
DoWork Event
estoy tratando de actualizar elBindingSource
y allí intentando actualizar elDataGridview
.
Entonces elBindingSource
El reinicio se realiza en un método en otra clase.
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);
}
}
}
Ahora estoy recibiendo una excepción comoBindingSource
No puede ser su propia fuente de datos. No establezca elDataSource
yDataMember
propiedades a los valores que se refieren de nuevo aBindingSource
.
Si estoy haciendo esto en miDoWork Event
entonces puedo restablecer el elemento en el propio hilo de control usandoBeginInvoke method
.
Pero en realidad estoy tratando de simular nuestro escenario de aplicación. Así que quiero resolver esto en este formato.
Puede alguien ayudarme con esto.