2

IBindingListデータソースからのデータを表示するプログラム(単純なグリッド-特殊な出力を使用)を作成しようとしています。データは問題なく表示できますが、グリッドとは別のTextBoxなどで、ユーザーがデータを編集できるようにすることもできます。私の問題は、2つの要素(グリッドと編集可能なテキストボックス)の間でデータの「自動」更新を実行する方法がわからないことです。

リストのListChangedイベントは、リスト自体がいつ変更されたかを教えてくれると思いますが、リスト内の実際のデータがいつ変更されたかをグリッドが知る必要があります。グリッドの外部で変更が発生したときに私が偶然見つけたのは、BindingManagerBase.Bindings[0].Parseイベントにフックすることだけです。ユーザーがこれを行うわけではありませんが、ユーザーがすべて同じフィールドにバインドされた複数のテキストボックスを確立した場合、各BindingManagerBase.Bindingエントリをループしてフックする必要があると思いますか?

私はこれを正しく行っていないと推測しています。これを達成するためのより一般的な方法があります。私が成し遂げようとしていることに精通している人からの指示をいただければ幸いです。

よろしくお願いします、-マット

4

2 に答える 2

1

INotifyPropertyChangedを見てください。BindingListに格納されているクラスに実装して、アイテムのプロパティが変更されたときにそのBindingListに通知します。

IBindingListを自分で実装した場合は、リスト内の各アイテムのイベントに接続するためにもう少し作業を行う必要がありますが、提供されたBindingListはこれらのイベントを自動的に取得します。

于 2011-10-25T15:20:24.850 に答える
1

ジェネリックBindingListを使用し、ResetItem を使用して編集を通知することもできます。

于 2012-03-29T08:48:23.560 に答える