基于MVVM的应用程序中的导航

时间:2009-10-22 18:38:22

标签: wpf architecture mvvm navigation

我们正在设计一个xbap应用程序,它具有复杂的用户可配置导航流程,取决于模型,用户安全等状态以及其他一些环境因素。

应用程序有一个容器视图,可以在Frame中加载用户特定的控件,我想知道在单独的控制器内或容器视图的viewmodel中有导航逻辑的首选做法。

3 个答案:

答案 0 :(得分:2)

我会将导航流程代码放在某种全局控制器或服务中。您可能不希望您的视图或视图模型具有这样的逻辑,因为它们会为它们提供相当多的依赖性,尤其是当您的流程非常复杂且可自定义时。相反,您希望这些视图和视图模型可以轻松地进行单元测试,在这种情况下,他们会推迟当某些人能够做出更好的决策时所发生的事情。

答案 1 :(得分:1)

我认为连接Hyperlink.RequestNavigate的顶级路由事件处理程序和NavigationCommands.GoToPage的CommandBinding将是足够的分离级别。你在寻找更多吗?

答案 2 :(得分:0)

德鲁,任何获得更多解释的机会。我喜欢这个解决方案,但我正在学习并且不太明白如何将其付诸实践,特别是如果viewModel中有特殊逻辑来确定下一步导航的位置。