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

相關問題