我正在为 Win8 构建一个 Metro Style 应用程序,它需要在框架导航上传递两个文本块值。对于一个参数,它可以工作,但对于两个参数,它不起作用。请帮忙!我试过如下: this.Frame.Navigate(typeof(SecondPage),textblock1.Text + textblock2.Text);
我没有显示任何错误,但它不起作用。
创建一个具有 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);
我已经采取了这样的字典对象。
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();
}
http://social.msdn.microsoft.com/Forums/windowsapps/en-US/8cb42356-82bc-4d77-9bbc-ae186990cfd5/passing-parameters-during-navigation-in-windows-8?forum=winappswithcsharp 在这里相同; )我认为这就是你想要的