2

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 レベルの深さだけを更新しますか? それとも値(参照ではない)オブジェクトのみですか?

それとも、これは機能していて、バインディングを詳しく調べる必要がありますか?

4

1 に答える 1

0

セッターで NotifyPropertyChanged を発生させる代わりに、発生させる必要がある場合にのみ、コードのどこかでプロパティを発生させてみてください。

于 2012-05-09T01:52:03.213 に答える