2

我有问题是否有可能以某种方式使用此项目结构并在某些ViewModel导航到特定视图从Core.Windows/Core.WindowsPhonePCL通用应用程序 - 导航到正确的视图

1. PCL库

核心(PCL普遍应用)

  • 视图模型

Core.Windows(PCL) - 参照核心

  • 查看

Core.WindowsPhone(PCL) - 参考核心

  • 查看

我需要保持在查看PCL,因为我使用的一些其他项目同样的观点。

2.通用应用

的Windows - 参考核心,Core.Windows

的WindowsPhone - 参考核心,Core.WindowsPhone

共享

回答

1

是的,我认为这是可能。

我有我的解决方案类似的要求(使用同一视图用于不同的应用程序)

Basicly我建议如下:

1)创建核心的NavigationService抽象类和/或INavigationService接口(PCL适用于ViewModel的通用应用程序)。

2)创建在Core.Windows和Core.WindowsPhone WindowsNavigationService和WindowsPhoneNavigationService类从的NavigationService推导1)

这类可以执行以下操作:

1)保持的

一个实例
Dictionary<ViewModelBase,Page> mapDictionary 

ViewModelBase是您的viewmodel(我想你有一个)的基类。

2)在mapDictionary中注册数据:例如添加视图和相应的ViewModel到它

3)执行导航购买持有帧的实例:例如NavigateTo,GoBack等

4)将ViewModel绑定到View。

之后,您可以在您的ViewModels中保存NavigationService并在它们之间执行导航。

如果您对这样的方法感兴趣,我建议您浪费一些时间,看看https://github.com/MvvmCross/MvvmCross - 这可以让您了解如何构建您的架构。

同样有趣的交约PCL(样本代码演示描述的方法):http://msdn.microsoft.com/en-us/magazine/hh852593.aspx

源代码的文章:http://download.microsoft.com/download/6/2/D/62D36C65-4C36-429A-8711-F657D34AB4BC/Code_KeanPCL0312.zip

相关问题