データバインディング
GUIアプリケーションは画面上でテキストボックスやチェックボックス、ボタンなどのユーザー操作を受け付けるインタラクティブな要素を持つ。また、しばしばUIはデータを表示・操作するための役割を果たす。例えば従業員情報を管理するソフトウェアであれば、ダイアログ画面上で従業員の氏名や生年月日、住所などのプロパティを入力し、確定後にデータベースに反映するというような機能を持つが、古典的な実装では確定ボタンが押下された際に発生するイベントを処理するハンドラー(コールバック関数)を記述して、現在の画面上のテキストボックスに入力されている文字列やチェックボックスのON/OFF状態などを取得し、それらをプログラム内部で従業員を表す不可視データ(従業員レコードの各フィールド)に設定し、データベースに反映する。また、リストビューに一覧表示した従業員情報のひとつを選択してプロパティを変更する場合、リスト上で選択された行番号から従業員番号を特定し、データベースから読み出した現在の情報をもとにダイアログ画面上で対応するUI要素にそれぞれ設定して反映する必要がある。このようなプログラミングは一般的に煩雑であり、またデータの処理ロジックとUIの操作が密結合しがちになるため、プログラムのメンテナンス性が低下する。