2016-02-25 74 views
0

我需要導航到UWP應用程序中的同一個XAML頁面。我怎樣才能做到這一點?如何導航到UWP應用程序中的同一個XAML頁面?

我讀過其他答案在這裏簡單地傳遞給URI的參數;但是,我沒有使用NavigationService.Navigate(new Uri())。在我的例子中,我們使用的是NavigationService.Navigate(typeof(UserSelectionPage), theParameterObject)

我也明白,使用NotificationChanged事件可觀察的屬性可以實現這一點,但我想保留在這個頁面的兩個通道在後臺。總之,我想這一點:

首頁 - > UserSelectionPage(PASS1) - > UserSelectionPage(PASS2) - > ConfirmPage

,我需要保持UserSelectionPage的兩道在堆棧中。

+0

你究竟想在這裏做什麼?你爲什麼要一個頁面導航到自己? – RareNCool

+0

在主頁上,用戶爲他們想要接收的通知數量指定一個數字(最多3個),我們稱之爲numberOfNotifications。 UserSelectionPage將被導航到numberOfNotification時間,允許用戶爲每個通知設置相同的一組屬性(出現在UserSelectionPage上)。 – killQuotes

回答

0

剛發現在UWP中可以導航到同一頁面。我需要確定傳遞的參數不是相同的對象。添加此檢查解決了問題。

0

那麼導航到相同的頁面是不可能的,但你可以改變你的邏輯重用你的頁面。

用戶填寫表單或數據,在那之後我猜他按下一個按鈕或類似的東西去到下一個階段,你有沒有要保存所有數據:

都在PASS1第一您應用的本地文件夾。 設置的名稱將是「1步」

通2:

清除您的網頁或表格的所有值,並等待用戶填寫的所有數據,您需要使用相同的辦法,我在步驟1中解釋過,將數據保存在名爲「Pass2」的應用程序的存儲中

最後,您將轉到Confirm頁面,您可以從存儲設備中檢索所有保存的數據Pass1和Pass2 。

下面是一個例子如何保存在UWP應用程序設置

https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/ApplicationData

我建議你保存所有的數據在一個JSON格式sereialize和反序列化數據非常容易。

更新:

現在我知道你正在使用MVVM光所有的ViewModels是靜態的。

如果你不想保存你的數據,你可以創建你的模型的另一個變量(我猜你有一個包含你所有屬性的類)或另一個屬性來備份pass1中的屬性值原始屬性並等待Pass2中的新值

+0

感謝您的回答,但我不認爲我需要將表單數據保存到任何應用程序存儲。由於我使用MVVMLight,因此所有表單數據都存儲在視圖模型中,我已成功爲Pass2填充。另外,如果無法導航到相同的頁面,您如何建議我導航到Pass2?從你的回答中我不清楚。 – killQuotes

+0

我更新了我的答案! – RicardoPons

相關問題