LLBLGen エンティティにバインドされた WinForms フォームがあります (この問題はこのバインディング ソースに固有のものではないと思いますが、念のため言及します)。私の目標は非常に単純に思えます。他のフィールドの計算に基づいて、フォームの別のフィールドを更新することです。
私の問題は、この計算を行うためにフォームの他の場所で使用されているのと同じビジネス ロジックを再利用したいため、バインドされたエンティティをビジネス ロジック レイヤーに渡して処理できるようにすることです。
私が奇妙だと思うのは、フォーカス チェーン ( http://msdn.microsoft.com/en-us/library/system.windows.forms.control.enter.aspxを参照) のどこにいるのかが見つからないことです。バインドされたエンティティを更新されたフォームで使用できます。計算は正常に実行されますが、更新前の値が使用されます。
過去に、.text から値を取得し、それらが使用可能であることを検証して、そこから移動することで、この問題を回避しました。また、「更新」ボタンを使用して回避しました。値を編集してすぐにクリックした場合でも、クリックイベントは更新された値にアクセスできます。
それでも、明らかな何かが欠けているようです。イベントチェーンのどこかで、バインドされた値が更新され、そこで計算を実行できるはずです。
私の中心的な質問: WinForms で更新されたバインドされた要素にアクセスするには、どのイベントを使用する必要がありますか?