簡體   English   中英

如何在頁面之間傳遞對象

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM