如何在Metro Style Apps中传递框架导航中的多个参数?

时间:2012-05-03 06:11:51

标签: c# windows-8

我正在为Win8构建Metro Style App,它需要在帧导航上传递两个文本块值。对于一个参数,它可以工作但是对于两个参数它不起作用。请帮忙! 我尝试过如下:        this.Frame.Navigate(typeof(SecondPage),textblock1.Text + textblock2.Text);

我没有显示任何错误,但它无效。

3 个答案:

答案 0 :(得分:8)

创建一个包含2个属性的新类,并将属性设置为文本块值。然后在导航时传递此对象。

创建有效负载类:

public class Payload
{
 public string text1 { get;set;}
 public string text2 { get;set;}
}

然后填充有效负载类:

Payload payload = new Payload();
payload.text1 = textblock1.Text;
payload.text2 = textblock2.Text;

然后,当您调用Navigate时,请传递您的有效负载实例:

this.Frame.Navigate(typeof(SecondPage),payload);

答案 1 :(得分:1)

我已经拿了这样的字典对象。

Dictionary<string, string> newDictionary = new Dictionary<string, string>();
newDictionary.Add("time", itemObj.repTime);
newDictionary.Add("message", itemObj.repMessage);
Frame.Navigate(typeof(ViewDetails),newDictionary);

在ViewDetails.xaml.cs页面上,我检索了这样的数据,

protected override void OnNavigatedTo(NavigationEventArgs e)
    {
         Dictionary<string, string> myDictionary = new Dictionary<string, string>();
         myDictionary = e.Parameter as Dictionary<string, string>;
         timeTB.Text = myDictionary["time"].ToString();
         messageTB.Text = myDictionary["message"].ToString();
    }

答案 2 :(得分:0)