我们正在设计一个xbap应用程序,它具有复杂的用户可配置导航流程,取决于模型,用户安全等状态以及其他一些环境因素。
应用程序有一个容器视图,可以在Frame中加载用户特定的控件,我想知道在单独的控制器内或容器视图的viewmodel中有导航逻辑的首选做法。
答案 0 :(得分:2)
我会将导航流程代码放在某种全局控制器或服务中。您可能不希望您的视图或视图模型具有这样的逻辑,因为它们会为它们提供相当多的依赖性,尤其是当您的流程非常复杂且可自定义时。相反,您希望这些视图和视图模型可以轻松地进行单元测试,在这种情况下,他们会推迟当某些人能够做出更好的决策时所发生的事情。
答案 1 :(得分:1)
我认为连接Hyperlink.RequestNavigate的顶级路由事件处理程序和NavigationCommands.GoToPage的CommandBinding将是足够的分离级别。你在寻找更多吗?
答案 2 :(得分:0)