【问题标题】:MVVM shared between Win8 and WP8 (2 pages in one page)Win8和WP8共享的MVVM(一页2页)
【发布时间】:2014-01-18 20:28:26
【问题描述】:

我们有一个使用 MVVM 的 Windows Phone 8 应用程序。有几个页面以下列方式工作。页面 1 有一些按钮,当点击其中一个按钮时,页面 2 就会打开。

现在我们想将我们的应用程序迁移到 Windows 8。由于更大的屏幕尺寸,我们实际上可以在同一页面上显示按钮和内容(见附图)。基本上我们将有一个单独的屏幕,我们可以在其中动态更改其中的一部分(右侧为绿色)

我们希望在两个应用程序之间共享视图模型。有没有一种模式可以用于这样的事情?

我们调查了一些替代方案,但我们不确定哪个是正确的:

  1. “一些内容”(WP8 中的第二页)应该是 Windows 应用程序中的用户控件吗?
  2. 我们是否应该为 Win8 创建一个全新的视图模型,其中包含来自 WP8 应用程序中多个视图模型的代码?但这听起来是个坏主意,因为我们在 WP 8 应用程序中有大约 6 个视图模型,它们现在显示在 win 应用程序的同一页面上。
  3. Win 8 视图模型是否应该以某种方式“包含”其他视图模型?
  4. 动态内容(绿框)是否应该有自己的 MVVM?

想法?有什么建议吗?

【问题讨论】:

    标签: c# mvvm windows-phone windows-store-apps


    【解决方案1】:

    嗯,这在很大程度上取决于您的申请,无法给出明确的答案。但是由于按下按钮会在 W8 应用程序中加载不同的内容,MVVM 可以解决这个问题而没有太多问题。

    因此,在 WP8 应用程序中按下按钮会发出触发导航的消息。在 W8 中,您可以更改该消息处理程序以销毁用户控件并创建新控件。在 WP8 应用程序中,您的第二个屏幕是具有自己视图模型的独立页面,没有理由不使用相同的视图模型在 W8 上进行用户控制。

    但是,您必须从头开始编写 UI,因为 XAML 无法共享。

    【讨论】:

      猜你喜欢
      • 2012-06-26
      • 1970-01-01
      • 2013-04-21
      • 2019-02-01
      • 1970-01-01
      • 2018-09-04
      • 2012-11-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多