我有一个名为数据的对象。 它是以下给定类
的对象[DataContract]
public class Details
{
[DataMember(Name = "code")]
public int Code { get; set; }
[DataMember(Name = "message")]
public string Message { get; set; }
[DataMember(Name = "values")]
public values values { get; set; }
}
其中values是另一个带变量的类。
现在我想将对象数据发送到另外一页。
NavigationService.Navigate(new Uri("/Folder/page2.xaml?object="+ data,UriKind.Relative));
我收到它如下所述
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
base.OnNavigatedTo(e);
if (e.Uri.OriginalString.Contains("object"))
{
string data = NavigationContext.QueryString["object"];
MessageBox.Show(data);
}
}
但是在执行上述方法时,数据变量中的值stord是
Projectname.Foldername.Filename
我该怎么做才能传递对象的值?
答案 0 :(得分:3)
尝试以下代码
PhoneApplicationService.Current.State["keyName"] = object;
并在page.xaml代码的另一端抓住它。
答案 1 :(得分:2)
我不认为在URI中传递复杂对象是个好主意。我的建议是使用以下代码扩展NavigationService类:
public static class NavigationExtensions
{
private static object _data= null;
public static void Navigate(this NavigationService service, string page, object data)
{
_data = data;
service.Navigate(new Uri(page, UriKind.Relative));
}
public static object GetLastNavigationData(this NavigationService service)
{
object data = _data;
_data = null;
return data;
} }
您可以致电NavigationService.Navigate("/Folder/page2.xaml", data);
进行导航
并var data= NavigationService.GetLastNavigationData()
获取价值