2011-06-29 26 views
1

私は、INotifyPropertyChangedインターフェイスを実装するオブジェクトのコレクションにバインドされたDataGridViewを使用します。したがって、DataGridViewは、オブジェクトのプロパティが変更されるたびに正しく更新されます(これらの値は、デバイスからシリアルポートを介して常に値を取得して変化しています)。DataGridViewの双方向バインディング

私は双方向バインディングが必要です。しかし、私がDataGridViewを手動で編集するとき、現在編集中のオブジェクトに対してPropertyChangedイベントが発生すると、InvaliedOperationExceptionが発生します: "クロススレッド操作が有効ではありません:コントロール 'dataView'が作成されたスレッド以外のスレッドからアクセスされました。

質問は、値を編集して同時にDataGridViewコントロールに表示するためにどのような戦略を使用できますか?

+0

コレクション内の日付を別のスレッドからポーリングしていますか?もしそうなら、あなたは 'Control.BeginInvoke'と' Control.InvokeRequired'を使う必要があります。そのトピックについてのここ数多くの質問:) –

答えて

1

ちょっとお勧めしますが、BackgroundWorkerクラスを使用してDoWorkを使用してデータバインディングを実行できます。お役に立てれば。

関連する問題