C# Windows Phone 8.1向后导航时的手机参数数据
我正在创建Windows Phone 8.1应用程序 我的应用程序上有一些屏幕。在第一个屏幕上,我使用参数数据将屏幕导航到第二个屏幕。现在,我想用不同的参数数据从第二个屏幕导航到第一个屏幕 使用C# Windows Phone 8.1向后导航时的手机参数数据,c#,windows-phone-8.1,C#,Windows Phone 8.1,我正在创建Windows Phone 8.1应用程序 我的应用程序上有一些屏幕。在第一个屏幕上,我使用参数数据将屏幕导航到第二个屏幕。现在,我想用不同的参数数据从第二个屏幕导航到第一个屏幕 使用Frame.Navigate(typeof(frame1),参数)我可以将数据从第一个屏幕传递到第二个屏幕(前向导航) 但是如何将数据从第二个屏幕传递到第一个屏幕(向后导航)?没有简单的解决方案。使用Frame.GoBack方法无法传递参数。此外,如果使用NavigationHelper.GoBack也不
Frame.Navigate(typeof(frame1),参数)代码>我可以将数据从第一个屏幕传递到第二个屏幕(前向导航)
但是如何将数据从第二个屏幕传递到第一个屏幕(向后导航)?没有简单的解决方案。使用Frame.GoBack
方法无法传递参数。此外,如果使用NavigationHelper.GoBack
也不能传递参数。这是按设计的。如果返回,将打开先前打开的视图。这就是返回的定义。您希望“恢复”以前的状态
但是,当您将新数据存储到可以从frame1
访问的变量中时,可能会有一个解决方案
您能否说明为什么要使用不同的数据进行向后导航
另一个更好的方法是使用ContentDialog
。在那里,您可以在打开之前将所需的ViewModel添加到DataContext。关闭ContentDialog之后,您可以验证传递给它的数据
ContentDialog cd = new MyContentDialog();
if (parameter != null)
{
cd.DataContext = // set context here;
}
await cd.ShowAsync();
//now lets validate or process the necessary data.
我能想到的唯一解决方案是在App.xaml.cs
中声明一个全局变量,这样您就可以从Frame2访问它并设置一个值,然后从Frame1获取值
public static Object navigationData
{
get;
set;
}
从任何地方都可以使用
var data = App.navigationData;
我想从主页确认页。用户保存主页面,控件传递到确认页面,用户在其中请求输入值。需要将此输入值传递回主页。。我现在这是可能的弹出,但我们想要一个新的页面,而不是弹出。。此外,我还需要保持后退按钮流程。您是指使用popup
打开内容对话框吗?要求是创建一个新页面而不是popup。我建议您将必要的详细信息存储到全局变量中,并在导航回上一个视图时读取它。
var data = App.navigationData;