[英]How to pass object between pages
我有一個名為data的對象。 它是下面給定類的對象
[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; }
}
值是另一個帶有變量的類。
現在,我想將對象數據發送另外兩個頁面。
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
我應該怎么做才能將其值傳遞給對象?
試試下面的代碼
PhoneApplicationService.Current.State["keyName"] = object;
並將其捕獲在page.xaml代碼的另一側。
我認為在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()
以獲取值
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.