マークの答えは、あなたが望むことを達成する方法を示していますが、あなたはまた、「[双方向バインディング]を達成する方法とそれが実際に何を意味するか」についてより一般的に尋ねました。
一方向バインディングとは、バインディングターゲット(コントロールなど)がバインディングソース(ビジネスオブジェクトなど)からのデータを表示し、ビジネスオブジェクトの変更に応じて自身を更新することを意味しますが、コントロールへの変更はビジネスに伝播されません。物体。たとえば、Person.Nameが「bob」から「kate」に変更された場合、NameにバインドされたTextBlock.Textも「bob」から「kate」に変更されます。
双方向バインディングとは、ビジネスオブジェクトの変更がUIに反映されるだけでなく、ユーザーがUIで行った変更もビジネスオブジェクトに伝播されることを意味します。したがって、ユーザーがNameにバインドされたTextBox.Textを編集するとき、たとえば「kate」を「edmund」に変更すると、WPFはPerson.Nameプロパティも「edmund」に設定します。
これを実現するには、Binding宣言でMode=TwoWayを設定するだけです。一部のプロパティはデフォルトで双方向にバインドされます。たとえば、TextBox.TextはデフォルトでTwoWayをバインドします。そのため、MarkのコードはMode宣言を必要としません。さらに、Markが指摘しているように、既定では、WPFは、コントロールがフォーカスを失った場合にのみ、変更をビジネスオブジェクトに伝播します。同じプロパティにバインドされた2つのUI要素がある場合、これはそれらが同期していないように見えることを意味する可能性があります。その場合、UpdateSourceTriggerを使用して、プロパティが変更されるたびにWPFを強制的に伝播できます。
MSDNは、これをいくつかの明確な図で詳細に説明しています。WPFSDKのデータバインディングの概要を参照してください。