gpt4 book ai didi

mvvmcross - 如何实现复合 ViewModel 的复合 View ?

转载 作者:行者123 更新时间:2023-12-04 22:21:33 25 4
gpt4 key购买 nike

我刚刚进入我的第一个项目(令人难以置信的优秀)MVVMCross,我不知道如何做一些看起来相当基本的事情:复合 View 。

假设我有一个 Person (FirstName、LastName 等),并且一个人的 Address (街道、城市、邮政编码等)。所以我也会有一个PersonViewModelAddressViewModel .

这是一个严格基于平板电脑的应用程序(实际上仅限 iPad),我想使用遏制来拥有 PersonView包含(可重复使用的)AddressView ,使得外部(人) View 绑定(bind)到 Person ,而内部(地址) View 绑定(bind)到 Person.Address .

我(模糊地)理解展示 View 的演示者概念,如 here 所讨论的。 ,但我看不到如何处理从 Person 到 Address 并返回的更改传播。

假设 Person 对象有一个 Address 对象,但是 PersonViewModel显示 AddressViewModel通过传递某种地址 id 并补水,在 AddressView 中。然后 AddressView 绑定(bind)到 不同地址对象比 Person 包含的对象。我不知道如何使两者保持同步,这当然会破坏绑定(bind)的整个目的。

我应该怎么做我想做的事?

最佳答案

这是一个非常广泛的话题......

...并且有很多可能的答案。

我认为将 ViewModel 视为一个非常简单的概念很重要——我想鼓励您将 ViewModel 视为 View 的模型——绝对不要将它们视为“整页”对象。

……

在 MvvmCross 中,您可以使用 ShowViewModel和自定义演示者,如果您愿意,可以更改 UI - 这在几个 MvvmCross 示例中得到了演示,包括 Split View演示者 - http://slodge.blogspot.com/2013/05/n24-splitviewpresenter-n1-days-of.html

这个ShowViewModel技术对 navigation 非常有用- 用于更改整个页面或其中的重要部分。

但是,如果您的应用不需要导航范例,则不必使用它们。

如果你愿意,那么你可以改为:

  • 在核心
  • 中构建您自己的 View 模型层次结构
  • 然后您可以在 UI 中构建您自己的数据绑定(bind) View 层次结构

  • 这完全取决于你 - 您的应用为王 .

    ……

    我觉得我解释的不是很好...

    ……

    所以我放弃并录制了这个视频 - 也许它有帮助: http://slodge.blogspot.co.uk/2013/06/n32-truth-about-viewmodels-starring.html

    视频和示例代码仅涵盖 iPad,但我希望很容易(ish)了解如何将其扩展到其他平台:
  • 对于 Windows,您可以使用 UserControl
  • 对于 Android,您可以使用 MvxFrameControl , 自定义 View 或 Fragment代码。
  • 关于mvvmcross - 如何实现复合 ViewModel 的复合 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17365882/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com