我们有一个使用 MVVM 的 Windows Phone 8 应用程序。有几个页面按以下方式工作。第 1 页有一些按钮,单击其中一个按钮时,会打开第 2 页。
现在我们想将我们的应用程序迁移到Windows 8。由于屏幕尺寸更大,我们实际上可以在同一页面上同时显示按钮和内容(见附图)。基本上我们将有一个单独的屏幕,我们可以在其中动态更改它的一部分(右侧为绿色)
我们想在两个应用程序之间共享 View 模型。有没有一种模式可以用于这样的事情?
我们调查了几个备选方案,但不确定哪个是正确的:
- “某些内容”(WP8 中的第二页)应该是 Windows 应用程序中的用户控件吗?
- 我们是否应该为 Win8 创建一个全新的 View 模型,它具有来自 WP8 应用程序中多个 View 模型的代码?这听起来像是个坏主意,因为我们在 WP 8 应用程序中有大约 6 个 View 模型,它们现在显示在 win 应用程序的同一页面上。
- Win 8 View 模型是否应该以某种方式“包含”其他 View 模型?
- 动态内容(绿框)是否应该有自己的 MVVM?
想法?有什么建议吗?
最佳答案
好吧,这在很大程度上取决于您的应用程序,无法给出任何明确的答案。但是由于按下按钮会在 W8 应用程序中加载不同的内容,因此 MVVM 可以轻松解决这个问题。
因此,在 WP8 应用程序中按下按钮会发出触发导航的消息。在 W8 中,您可以更改该消息处理程序以销毁用户控件并创建新的。在 WP8 应用程序中,你的第二个屏幕是一个独立的页面,它有自己的 View 模型,没有理由在 W8 上没有使用相同 View 模型的用户控件。
但是,由于无法共享 XAML,您必须从头开始编写 UI。
关于c# - Win8与WP8共享MVVM(一页2页),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21209466/