ビジネスオブジェクトのリスト(オブジェクトごとに1つの編集可能なフィールドのみ)にバインドされた単純なDataGridViewがあります。バインドされたオブジェクトを更新するために、ユーザーが行う値(DataGridViewTextBoxColumn内の値)に対する変更が必要です。つまり、通常のテキストボックスをバインドし、 'OnPropertyChanged'オプションを使用する場合と同じ方法で、すべてのキー押下を更新します。TextBox値が変更された直後にDataGridViewデータソースを更新する
これは、バインドされたオブジェクトの 'IsDirty'プロパティがtrueの場合にフォーム上の「OK」ボタンを有効にするだけで済むためです。
チェックボックスの列とCurrentCellDirtyStateChangedイベントを使用してCommitEditを呼び出す方法については、さまざまなWebサイトで多くの議論があるようです。私はこれを試しましたが、これは最初のキー押しですべてのテキストのセルをクリアするという不幸な副作用を持っていました!
ご協力いただきありがとうございます。
実際にデータソースを更新する必要がありますか?代わりに単にCurrentCellDirtyStateChangedイベントを使用してボタンを有効にできませんでしたか?ボタンがクリックされたときにフォーカスが失われると、データソースが更新されます。 –