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
。
しかし実際には、アプリケーション シナリオをシミュレートしようとしています。だから私はこれをこの形式で解決したい。
誰でもこれについて私を助けることができますか?