【发布时间】:2013-06-28 13:30:18
【问题描述】:
我刚刚开始使用(令人难以置信的出色)MVVMCross 进行我的第一个项目,但我不知道如何做一些看似相当基本的事情:复合视图。
假设我有一个Person(名字、姓氏等),而一个人有一个Address(街道、城市、邮政编码等)。所以我也会有一个PersonViewModel 和一个AddressViewModel。
这是一个严格基于平板电脑的应用程序(实际上仅适用于 iPad),我想使用包含使 PersonView 包含(可重复使用的)AddressView,这样外部(人)视图绑定到 Person ,而内部(地址)视图绑定到Person.Address。
我(模糊地)理解用于显示视图的演示者概念,如 here 所讨论的那样,但我看不出如何处理从 Person 到 Address 的更改传播并返回。
假设 Person 对象有一个 Address 对象,但 PersonViewModel 在 AddressView 中通过传递某种地址 id 和补水来显示 AddressViewModel。然后,AddressView 将绑定到一个 不同 Address 对象,而不是 Person 包含的对象。我不知道如何使两者保持同步,这当然会破坏绑定的整个目的。
我应该如何做我想做的事?
【问题讨论】:
-
不是 100% 肯定的(因此我将此作为评论而不是答案),但是如果您在每个变量中命名变量相同的东西(Person 与 PersonViewModel 等...),当您通过您的视图传递 PersonViewModel 或 AddressViewModel 时,绑定应该“自动”发生,并尝试将其返回到您的控制器或类似 Person 或 Address 本身的东西中。
标签: mvvmcross