2012-05-07 12 views
2

Windowsフォームアプリケーションを使用しています。ユーザーがある行から次の行にフォーム内を移動するときにUIで行う必要のあることがいくつかあります。コントロールのデータバインディングがすべて完了したら、これらの処理を実行したいと思います。これは、処理の順序が重要なためです。すべてのバインディングが完了した時点を判断する良い方法はありますか? BindingSource.BindingCompleteイベントを使用できますが、実行する必要のあるものの多くは、複数のコントロールのバインドを完了する必要があります。私はこれを追跡する方法を見つけることができましたが、誰かがBindingSourceのすべてのバインディングが完了したことを伝える簡単な方法があるかどうかを確認するように頼んでいたと思いました。ありがとう。BindingSourceのすべてのバインディングが完了した時点を判断する

+0

あなたは、どのようにあなたがあなたのバインディングを設定している場合、私たちを見るためにあなたのコードのサンプルを提供することができますか? –

+0

UIスレッドですべてのことが起こっていますか?行の変更(つまり、行選択のイベントハンドラが変更された)に応じて、データバインディングがすべて行われていますか? – roken

+0

はい、すべてUI上で起こっています。また、私はそれをdatagridviewにバインドしました –

答えて

1

各BindingControl実行時にコントロール名をトレースすることによってバインドされた最後のコントロールは何ですか。

Private Sub BindingSource_BindingComplete(sender As Object, e As BindingCompleteEventArgs) Handles BindingSource.BindingComplete 

    Debug.Print(e.Binding.Control.Name.ToString) 

End Sub 

あなたはそれを知っているので、あなたは最後のコントロールがバインドされたときに知っているこのイベント引数を確認することができます。

Private Sub BindingSource_BindingComplete(sender As Object, e As BindingCompleteEventArgs) Handles BindingSource.BindingComplete 
    If e.Binding.Control.Name = "controlName" Then 
     'Do things... 
    End If 
End Sub 

FabiD

+1

元の著者はあなたに言及しましたが、複数のコントロールがいつバインドされたかを知る必要があるため、問題があると指摘しました。 –

関連する問題