MVVMCross-将同一视图模型绑定到两个不同的视图

MVVMCross-将同一视图模型绑定到两个不同的视图,mvvm,mvvmcross,Mvvm,Mvvmcross,基本上,我的场景如下:我有一个绑定到ViewModel的视图,带有一个项目列表(项目的类是我的模型中的一个类)。每次在此“列表视图”中从列表中选择项目时,其字段都会在另一个“详细信息视图”中编辑。这与客户管理示例场景相同,其中从列表(在“列表视图”中)中选择客户,并且可以在“详细信息视图”中更改客户的详细信息在我的场景中增加的一个怪癖是,我希望对“详细信息”视图中的项目所做的更改能够反映回列表视图。这些更改将从“详细信息”视图保存到DB中 此外,根据在“详细信息”视图中所做的更改,可以从第一个视

基本上,我的场景如下:我有一个绑定到ViewModel的视图,带有一个项目列表(项目的类是我的模型中的一个类)。每次在此“列表视图”中从列表中选择项目时,其字段都会在另一个“详细信息视图”中编辑。这与客户管理示例场景相同,其中从列表(在“列表视图”中)中选择客户,并且可以在“详细信息视图”中更改客户的详细信息在我的场景中增加的一个怪癖是,我希望对“详细信息”视图中的项目所做的更改能够反映回列表视图。这些更改将从“详细信息”视图保存到DB中

此外,根据在“详细信息”视图中所做的更改,可以从第一个视图的列表中删除该项。注意,这并不是从数据库中删除记录,因为列表视图中的列表只是数据库中项目的过滤列表。我想出了两种可能的方法:

  • 通过将两个视图绑定到同一视图模型
  • 编辑如何调用第二个视图?第二个视图是否实际使用共享视图模型的相同实例?

    -或- 2.通过引用将列表视图中选定的项目传递到详细信息视图。因此,在本例中,我将维护1-View-to-1-ViewModel映射

    我的问题是:

    • 如何实现场景1
    • 在2中,
      Init()
      方法(与
      ShowViewModel()
      方法一起使用)是否支持通过 参考资料
    如果您能在回答中包含代码片段/示例,我将不胜感激

    提前多谢了

    将两个视图绑定到同一视图模型

    如果愿意,您可以在任何
    视图上手动设置
    ViewModel
    属性。只需设置
    ViewModel=foobase.OnCreate()
    base.OnNavigatedTo()
    base.ViewDidLoad()

    在2中,Init()方法(与ShowViewModel()方法一起使用)是否支持通过引用传递参数

    MvvmCross不支持在ViewModels之间传递对象。在Windows Phone上,导航由url参数执行。在Android上,导航由
    Intent
    s执行-这些底层机制根本不允许传递实际的对象引用


    通常,我使用从数据存储到ViewModel的消息来处理这种情况

    如果您能在回答中包含代码片段/示例,我将不胜感激


    你可以看到我在Thanx Stuart的N=12到N=15中通常是如何做到这一点的。我会试试/看看所有的建议。@Stuart:嗨,Stuart,很抱歉一周后回来;只需编辑我的原始帖子,并添加了一个关于“将两个视图绑定到同一视图模型”主题的附加问题/澄清,我忘记了最初的内容:如何调用第二个视图?。塔克斯