我在Windows Phone應用程序的工作,這裏的情景,我有問題:Windows Phone的頁面導航
所以我有三個頁面,讓我們把它叫做頁面1,2,3
在第1頁,我有一個叫做start downloading
的按鈕。單擊該按鈕並使用NavigateService.Navigate(page2Uri)
並導航到page2。因爲在OnNavigateTo
處理程序中,我檢查頁面回棧,如果從頁面1導航,我將執行下載。在這個頁面的應用欄中,我有一個可以導航到page3的按鈕。
第3頁是將在第2頁下載的圖像上執行某些行爲的選項列表。一旦我選擇了一個選項,我想回到第2頁並對加載的圖像執行一些操作。
這裏的問題是:
如果我使用NavigateService.Navigate(page2Uri)
從page3導航到page2,它將再次調用Page2構造函數和OnNavigateTo
處理程序,這將導致它丟失它已獲得的每個實例變量。
但是,如果我使用NavigatService.GoBack
它將返回到page2,然後意識到backstack top條目是page1(因爲page1 - > page2 - > page3)。所以它會重新下載一切。
我不想在將表單page3導航回page2時再次下載任何東西。所以想知道如果任何人有這個好主意。
謝謝。
謝謝肖恩,我喜歡你的回答,這應該是處理這類問題的標準和正確的方法。但我用Jon的想法來保持頁面的全局狀態,並且它也可以完美地解決問題。 +1爲你的簡要答案。 – 2012-08-08 17:44:41
請注意靜態/全局屬性。當應用程序墓碑時它們不會持續。確保定期保存全局數據(或至少在應用程序事件中) – 2013-08-30 14:46:33