一般に、データ バインディングは、一部のユーザー インターフェイス要素の値が何らかのソースから取得され、開発者がコード ビハインド ファイルのコントロールから手動で値を設定および取得するのではなく、ランタイムによって入力されることを宣言的に述べる原則です。
したがって、たとえば WPF では、ウィンドウ全体の DataContext プロパティをオブジェクトに設定し、そのウィンドウの各コントロールに対して、WPF ランタイムがそのオブジェクトのどのプロパティから値を取得するかを指定できます。
たとえば、Forename プロパティと Surname プロパティを持つ Employee ビューモデルの場合、2 つのテキスト ボックスを持つ EmployeeView ウィンドウを作成できます。1 つは Forename プロパティに「バインド」され、もう 1 つは Surname プロパティに「バインド」されます。実行時に、フレームワークは各コントロールのバインディングを確認し、データから値を自動的に取得して、コントロールの値フィールドに入力します。同様に、コントロールの値がユーザーによって変更された場合、データ バインディングは新しい値を、バインド先のデータ モデルにプッシュできます。
これは、これらのテキスト ボックスのコンテンツをフォームのコード ビハインドで設定する VB6 の時代の典型的なアプローチ (例: forenameTextBox.Text = employee.Forename
) とは対照的です。VB6 (さらに言えば WinForms) でのデータ バインディングは異なります。フレームワークは上記で説明したことを行いますが、その過程でデータベースからのデータの取得を自動化します。ただし、それは近年支持されなくなっています(そして正当な理由があります)。