.NET / Formsアプリには、DataTableにバインドされたDataGridViewがあります。ユーザーはダブルクリックしてDataGridViewの行を選択し、アプリを操作します。その後、行の内容がプログラムで更新されます。
ユーザーが新しい行を選択すると、前の行の変更がフレームワークによって自動的にDataTableに伝達されます。ユーザーが新しい行を選択する必要がないように、コードからこの更新をトリガーするにはどうすればよいですか?
.NET / Formsアプリには、DataTableにバインドされたDataGridViewがあります。ユーザーはダブルクリックしてDataGridViewの行を選択し、アプリを操作します。その後、行の内容がプログラムで更新されます。
ユーザーが新しい行を選択すると、前の行の変更がフレームワークによって自動的にDataTableに伝達されます。ユーザーが新しい行を選択する必要がないように、コードからこの更新をトリガーするにはどうすればよいですか?
私はちょうど同じ問題を抱えていて、ここで答えを見つけました:
ユーザーが行から移動すると、コントロールはすべての行の変更をコミットします。ユーザーは、CTRL + ENTER を押して、行を離れずに行の変更をコミットすることもできます。行の変更をプログラムでコミットするには、フォームの Validate メソッドを呼び出します。データ ソースが BindingSource の場合は、BindingSource.EndEdit を呼び出すこともできます。
Validate() を呼び出すとうまくいきました。
これを明確にするプロセスは次のとおりです。
アプリはコントロールの状態を処理し、データを db に書き込み、データを DataGridView に書き込みます
IF ユーザーが DataGridView で選択を移動する
THEN 変更はバインドされた DataTable に反映されます
コードから DataGridView を変更した後、すぐに 6 をトリガーしたいと思います。
更新が行われるトリガーに依存すると思います。検証ルーチンにある場合は、ユーザーがデータの編集で [OK] をクリックした後に呼び出すことができます。あなたの質問は漠然としています。より多くの情報があれば答えやすいでしょう。この相互作用は何ですか?ダイアログですか?実際にデータを更新するのは何ですか?