Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Windows Phone 8.1向后导航时的手机参数数据_C#_Windows Phone 8.1 - Fatal编程技术网

C# 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也不

我正在创建Windows Phone 8.1应用程序

我的应用程序上有一些屏幕。在第一个屏幕上,我使用参数数据将屏幕导航到第二个屏幕。现在,我想用不同的参数数据从第二个屏幕导航到第一个屏幕

使用
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;