2

假设我有一个 ViewModel,上面有一个名为 Customer 的属性。当客户更改时,它会引发 NotifyPropertyChanged。

Customer 类上有其他属性(在 setter 中都会引发 NotifyPropertyChanged)。例如,它具有 FirstName 和 LastName 字符串。其中的另一个属性称为地址。

Address 具有 Line1、Line2、Zip、State 等属性。它们在更改时也会引发 NotifyPropertyChanged。

我有直接绑定到这些元素的 UI 元素。我发现当我做这样的事情时:

CurrentCustomer = FoundCustomer;

我的 BoundControls 中的 FirstName 和 LastName 等项目正在更新,但 Line1、Line2、Zip 和 State 没有。

我已经尝试过制作这样的 Address 的 ViewModel 实例:

CurrentAddress = FoundCustomer.Address;

当我这样做时,绑定的属性会正确更新。

有什么我缺少的绑定吗?它只更新一层吗?还是只有值(不是参考)对象?

或者这应该有效,我需要仔细查看我的绑定?

4

1 回答 1

0

尝试在 setter 中提升 NotifyPropertyChanged,仅在需要提升属性时尝试在代码中的某处提升属性。

于 2012-05-09T01:52:03.213 回答