Customer というプロパティを持つ ViewModel があるとします。Customer が変更されると、NotifyPropertyChanged が発生します。
Customer クラスには他のプロパティがあります (すべて setter で NotifyPropertyChanged を発生させます)。たとえば、FirstName と LastName の文字列があります。その中の別のプロパティは、Address と呼ばれます。
Address には、Line1、Line2、Zip、State などのプロパティがあります。これらはすべて、変更時に NotifyPropertyChanged を発生させます。
これらの要素に直接バインドされた UI 要素があります。私はこのようなことをするときにそれを見つけています:
CurrentCustomer = FoundCustomer;
FirstName や LastName などの項目は BoundControls で更新されていますが、Line1、Line2、Zip、および State は更新されていません。
次のような Address の ViewModel インスタンスを作成してみました。
CurrentAddress = FoundCustomer.Address;
これを行うと、バインドされたプロパティが正しく更新されます。
私が見逃しているバインディングについて何かありますか? 1 レベルの深さだけを更新しますか? それとも値(参照ではない)オブジェクトのみですか?
それとも、これは機能していて、バインディングを詳しく調べる必要がありますか?