我怀疑是否有可能以某种方式使用此项目结构,并且在某些ViewModel
内导航到Core.Windows
/ Core.WindowsPhone
的特定视图。
1。 PCL库
核心(适用于通用应用的PCL)
Core.Windows(PCL) - 对Core的引用
Core.WindowsPhone(PCL) - 对Core的引用
我需要在PCL中保留View,因为我对其他一些项目使用相同的View。
2。通用应用
Windows - 对Core,Core.Windows的引用
WindowsPhone - 对Core,Core.WindowsPhone的引用
共享
答案 0 :(得分:1)
是的,我认为这是可能的。
我的解决方案中有类似的要求(对不同的应用使用相同的视图)
基本上我建议如下:
1)在Core中创建一个NavigationService抽象类和/或INavigationService接口(使用ViewModels的通用应用程序的PCL)。
2)在Core.Windows和Core.WindowsPhone中创建WindowsNavigationService和WindowsPhoneNavigationService类,这些类派生自1中的NavigationService
此类可以执行以下操作:
1)持有
的实例 Dictionary<ViewModelBase,Page> mapDictionary
ViewModelBase是viewmodel的基类(我想你有一个)。
2)在mapDictionary中注册数据:例如添加View和相应的ViewModel
3)执行持有Frame实例的导航购买:例如NavigateTo,GoBack等
4)将ViewModel绑定到View。
之后,您可以在ViewModel中保留NavigationService并在它们之间执行导航。
如果您对此类方法感兴趣,我建议您浪费一些时间并查看https://github.com/MvvmCross/MvvmCross - 这可以为您提供有关如何构建架构的建议。
关于PCL的有趣帖子(示例代码演示了所描述的方法):http://msdn.microsoft.com/en-us/magazine/hh852593.aspx