c# - Win8与WP8共享MVVM(一页2页)

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

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

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

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

我们调查了几个备选方案,但不确定哪个是正确的:

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

想法?有什么建议吗?

enter image description here

最佳答案

好吧,这在很大程度上取决于您的应用程序,无法给出任何明确的答案。但是由于按下按钮会在 W8 应用程序中加载不同的内容,因此 MVVM 可以轻松解决这个问题。

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

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

关于c# - Win8与WP8共享MVVM(一页2页),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21209466/

相关文章:

c# - ObservableCollection 不更新 View

c# - 有什么方法可以避免实现 ICommand 以在 MVVM 中使用 Button?

windows-phone-8 - 使用照片捕获设备捕获照片时方向错误

windows-phone-8.1 - 升级到最新的 windows phone 8.1 后发送证书失败

c# - 如何以编程方式从 Windows 2003 服务器的无线网络设备检测密码类型和加密级别

c# - 什么会导致 FindControl() 抛出 NullReferenceException?

c# - 让 Automapper 忽略 EF 中的非标量和导航属性

c# - 如何在Xaml中为使用mvvm代码创建的窗口添加样式?

xaml - Windows Phone 工具包 ListPicker 引发未处理的异常

c# - 将字符串转换为 base64 时抛出异常