如何导航到UWP应用程序中的同一个XAML页面?

问题描述:

我需要导航到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

刚发现在UWP中可以导航到同一页面。我需要确定传递的参数不是相同的对象。添加此检查解决了问题。

那么导航到相同的页面是不可能的,但你可以改变你的逻辑重用你的页面。

用户填写表单或数据,在那之后我猜他按下一个按钮或类似的东西去到下一个阶段,你有没有要保存所有数据:

都在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