我正在將Windows Phone 8應用程序移植到Windows Store 8.1,我對如何在Win 8.1上運行頁面導航感到困惑。看起來它與WP 8完全不同:在Windows應用商店應用中導航 - 頁面在Back-Navigation上重新創建?
鑑於:PageA爲主頁面和其他一些頁面PageB。 導航:啓動應用程序,瀏覽着B和回A
的Windows Phone 8:
Windows應用商店的應用程序8.1:
- Constructor of PageA
- PageA.OnNavigatedTo()...
- PageA was just created? Ok, create ViewModel
- Click some Button to navigate to PageB
- Creation of PageB + actual Navigation...
- Click some Button to navigate back to PageA
- Constructor of PageA
- PageA.OnNavigatedTo()...
- PageA was just created? Ok, create ViewModel
的區別是在如何處理後退導航。在WP 8上,只使用PageA的現有實例Win 8.1創建PageA的一個完整的新實例。因此視圖模型必須重新創建,以及...
似乎在Win 8.1有在導航離開或到頁面沒什麼區別。 這是正確的嗎?或者我做錯了什麼?
在創建視圖模型的一些頁面上有相當多的工作。在導航到PageB並在導航返回時重新創建它時,如何丟棄現有的PageA?當然這可以節省內存,但是如果Windows Phone可以處理堆棧上的不同頁面,Win 8.1應該可以做到這一點,不是嗎?
當然,瀏覽模型可以在從PageA導航離開並加載而不是在導航回來時重新創建時保存。但是,因此視圖模型必須是可序列化的,並且concreate ViewModel相當複雜。
有沒有辦法讓頁面保留在內存中?
謝謝你。我不知道爲什麼這沒有被更廣泛地提及或實際上不是默認的。 –