C# 如何在windows phone 8中使用对象导航?

C# 如何在windows phone 8中使用对象导航?,c#,windows-phone-7,windows-phone-8,C#,Windows Phone 7,Windows Phone 8,我需要使用对象而不是字符串从一个xaml页面导航到另一个 目前的代码是: private void Border_ManipulationStarted(object sender, System.Windows.Input.ManipulationStartedEventArgs e) { string uri = "/PhonePageOne.xaml?Text="; uri += txtBox.Text; NavigationService.Navi

我需要使用对象而不是字符串从一个xaml页面导航到另一个

目前的代码是:

  private void Border_ManipulationStarted(object sender,    System.Windows.Input.ManipulationStartedEventArgs e)
{
     string uri = "/PhonePageOne.xaml?Text=";
     uri += txtBox.Text;
     NavigationService.Navigate(new Uri(uri, UriKind.Relative));
}
我不想在url中传递文本,我需要传递一个对象,而不是像下面那样,有什么方法可以做到这一点

Person p = new person();
uri+=p

在第一页中,执行以下操作:

PhoneApplicationService.Current.State["param"] = p;
NavigationService.Navigate(new Uri("/PhonePageOne.xaml", UriKind.Relative));
在第二步中,检索参数:

Person p = PhoneApplicationService.Current.State["param"] as Person;
PhoneApplicationService.State
字典是一个临时存储位置,它会一直保存到你的应用被停用为止


其他选项可以是在例如App.xaml.cs中声明静态成员,并使用它从一个页面保存对象,从第二个页面检索对象。

在第一个页面中执行以下操作:

PhoneApplicationService.Current.State["param"] = p;
NavigationService.Navigate(new Uri("/PhonePageOne.xaml", UriKind.Relative));
在第二步中,检索参数:

Person p = PhoneApplicationService.Current.State["param"] as Person;
PhoneApplicationService.State
字典是一个临时存储位置,它会一直保存到你的应用被停用为止

其他选项可以是在例如App.xaml.cs中声明静态成员,并使用它从一个页面保存对象,从第二个页面检索对象。

您可以使用Messenger-->MVVM Light 它是MVVM的高级用途。 在视图模型中声明messenger/注册messenger/发送所需内容:)

您可以使用Messenger-->MVVM灯 它是MVVM的高级用途。 在视图模型中声明messenger/注册messenger/发送所需内容:)

虽然电话应用程序状态方法可能有效,但当您从休眠状态返回时,它会引发异常。它不是用来存储大型对象的。更好的方法是重写navigationservice类的导航函数。以下是一个链接,可帮助您浏览:-


虽然电话应用程序状态方法可能有效,但当您从休眠状态返回时,它会引发异常。它不是用来存储大型对象的。更好的方法是重写navigationservice类的导航函数。以下是一个链接,可帮助您浏览:-