【问题标题】:WP7 and silverlight similar navigation flowWP7和silverlight类似的导航流程
【发布时间】:2011-04-27 09:23:04
【问题描述】:

我正在开发由两页组成的应用程序。第一页是一个菜单,您可以在其中导航到第二页,这是某种地图。这个应用程序应该在 Windows Phone 7 和 Silverligth 4 上运行。一切都建立在 MVVM 模式上。对于 S4,我使用 Unity,对于 WP7,我正在创建非常简单的 IoC 容器。

说到底,我需要为这个应用程序提供一个通用的导航系统。我知道 S4 支持新接口 INavigationContentLoader,它允许我们使用自己的内容加载器。不幸的是,这不适用于 WP7。 我也在考虑利用 Shell/Frame 方法。基本上我们有一个带有可替换内容的外壳或框架控件。在这种情况下,导航是关于替换内容。但我担心这个解决方案不适用于 WP7,因为 BACK 按钮将关闭应用程序,而不是退回到上一页。 小伙伴们,你们还有什么想法吗?你有什么解决方案?我想强调的是,这个解决方案应该与 MVVM 保持一致。 最好的问候贾雷克

【问题讨论】:

  • 好的,所以我会尝试反过来问这个问题。如何在遵循 MVVM 模式的 WP7 中进行导航。因此,我不需要直接从视图导航,而是从视图模型导航。任何提示?谢谢

标签: silverlight windows-phone-7 mvvm


【解决方案1】:

对于这样一个简单的小应用程序,我会根据平台选择导航模式来创建自己的包装器。
比如:

void MyNavigate(uri page)
{
#IFDEF WINDOWS_PHONE
    NavigationService.Navigate(page);
#ELSEIF
    NavigateTo(page); // or whatever is appropriate to your Silverlight 4 app
#ENDIF
}

【讨论】:

  • 嗨,谢谢,但这是从视图中运行的。我需要遵循 MVVM 指南的解决方案。
  • @Jarek 你现在导航怎么样?
  • 不,我不使用任何特定的 MVVM 框架。我有一个带有 INotifyPropertyChanged 的​​ RelayCommand 和 ViewModel 抽象类。就是这样。
  • 好吧,因为我刚刚开始使用 WP7、Silverlight 和 MVVM,所以我创建了一个不遵循 MVVM 指南的演示应用程序。现在我正在尝试将应用程序完全移动到 MVVM 下。到目前为止,导航已完成,方式与您在上面所做的类似。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-03
相关资源
最近更新 更多