代码之家  ›  专栏  ›  技术社区  ›  Geoff

使用MVVM通过ViewModel属性弹出INotifyPropertyChanged事件的好方法是什么?

  •  16
  • Geoff  · 技术社区  · 14 年前

    我正试图找出从ModelView中的嵌套属性中弹出PropertyChanged事件的最佳方法。假设我有我的模型视图 PersonModelView 有财产的 PersonModelView.Address Address 反过来又有一个属性 City 西蒂 在我看来,我会做一些 {Binding Address.City} .

    我的问题是即使 地址 工具 INotifyPropertyChanged ,绑定将不会更新,因为它正在处理 PropertyChanged 人物模型视图 , 地址 . 我想我有两个选择:(1)更改绑定的源(或更改 DataContext 地址 人物模型视图 手柄 地址 有点像 Address.City .

    你们是怎么解决的?(我在mo使用MVVM light工具包,但对任何方法都感兴趣)

    4 回复  |  直到 14 年前
        1
  •  9
  •   Jackson Pope    14 年前

    如果 Address 工具 INotifyPropertyChanged 正确地提高 PropertyChanged its上的事件 City 属性,则绑定应注意其绑定到的属性已更改。

        2
  •  3
  •   Community TheSoundDefense    7 年前

    When nesting properties that implement INotifyPropertyChanged must the parent object propogate changes?

    但是,当控件的绑定设置为Address.City而没有PersonViewModel需要重新广播地址对象的更新通知时,IIRC WPF具有自动监视INotifyPropertyChanged通知的地址的智能。

        3
  •  1
  •   JSprang    14 年前

    你的 Address 对象实现 INotifyPropertyChanged ? 如果没有,我想这会解决你所看到的问题。

    抱歉,刚刚注意到你在帖子中提到你已经试过了。您是否尝试订阅PersonViewModel中地址对象的PropertyChanged事件?更改后,可以对地址对象执行属性更改。