【问题标题】:Sharing the same viewmodel between pages/main page and sub-page在页面/主页面和子页面之间共享相同的视图模型
【发布时间】:2013-11-20 16:25:36
【问题描述】:

我对整个 windows 平台有点陌生,我正在尝试为 windows 和 windows phone 创建 mvvm 可移植类库。现在我已经准备好所有较小的部分,我发现自己一直在试图弄清楚如何使用 mvvm 实现以下目标。

我有一个主页,我可以在此页面中查看汽车租赁预订信息。我将能够看到上车地点和下车地点(都在 PointOfInterestViewModel 内)。当我点击接送地点时。我想切换到另一个页面,该页面有一个包含多个可能位置列表的枢轴。一旦用户选择了一个位置,我将要更新 PointOfInterestViewModel 中的位置,然后将用户发送回主视图。

有没有一种方法可以在没有多个 PointOfInterestViewModel(s) 并在它们之间传递数据的情况下实现它?我宁愿有一个单一的视图模型,但仍然坚持 mvvm。

【问题讨论】:

    标签: c# windows mvvm windows-phone-8 portable-class-library


    【解决方案1】:

    您可以将 PointOfInterestViewModel 放在 App 类上,将主窗体绑定到它 - 然后您可以从枢轴更新它:

    ((App)App.Current).PointOfInterestVM = ....

    【讨论】:

    • App 类中的某些东西对 mvvm 来说不是不好的做法吗? (不完全确定)。
    • 可能。从您上面的描述来看,这似乎是一个应用程序设置,这让我想到将它放在应用程序类中。另一种选择是让 Main 表单将对它的 PointOfInterestViewModel 的引用传递给枢轴表单。
    • 嗯,第二个选项听起来很有说服力。对于 Windows 手机应用程序,我将如何绕过它?
    • 你可以在透视视图的构造函数中传递它
    猜你喜欢
    • 2021-09-04
    • 1970-01-01
    • 2012-01-22
    • 1970-01-01
    • 1970-01-01
    • 2014-03-27
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    相关资源
    最近更新 更多