我有一个包含3个项目的可移植类库。
在我的常见项目中,我有一个文件夹模型和一个文件夹视图模型。 在我的Windows Phone项目中,我有一个文件夹视图。
是否可以从公共项目的de viewmodel文件夹中的类导航到Windows Phone项目的视图文件夹中的xaml页面?
NavigationService.Navigate();
在这里不起作用,我找不到任何nuget包来包含它。
所以我的问题是:
NavigationService
?答案 0 :(得分:1)
PCL中没有NavigationService
类。您可以通过查看documentation on MSDN并点击“其他版本”下拉列表来确认这一点。
您应该使用事件。比如说,您的viewmodel类可能有一个名为NavigationRequested
的事件,您可以通过该事件调用而不是调用NavigationService.Navigate()
,并且您的视图使用以下内容订阅该事件:
ViewModel.NavigationRequested += (s, e) => NavigationService.Navigate(GetUrlFor(e.PageId));
答案 1 :(得分:0)
我已经将http://azerdark.wordpress.com/2010/04/23/multi-page-application-in-wpf/用于多页的多个项目,它也可能对您有用,希望它有所帮助。
答案 2 :(得分:0)
以下是一个示例,其中详细说明了如何执行此操作:Sharing Code: Adding NavigationService
以下是有关使用可移植类库的更多一般信息的一些来源:
答案 3 :(得分:0)
在MvvmCross中,我们通过导航到ViewModel而不是View来进行此类导航。
以这种方式工作,框架拦截ViewModel导航并以特定于平台的方式解释它 - 例如:
对于您自己的框架,您应该能够生成类似的抽象 - 只需让ViewModel启动导航到抽象的东西,然后让平台特定的代码处理每种情况下的细节。