[英]Send Parameters using Frame.Navigate in UWP
一个在这里临时存储我的输入值的类。
namespace App2
{
class methC
{
public string tb1 { get; set; }
public string tb2 { get; set; }
public string tb3 { get; set; }
public string tb4 { get; set; }
public string tb5 { get; set; }
public string tb6 { get; set; }
public methC(string tb1, string tb2, string tb3)
{
this.tb1 = tb1;
this.tb2 = tb2;
this.tb3 = tb3;
//this.right1 = right1;
//this.right2 = right2;
//this.right3 = right3;
//this.Box = Box;
//this.Grade = Grade;
}
}
}
接受参数的第一页
namespace App2
{
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
}
private void btn1_Click(object sender, RoutedEventArgs e)
{
methC mc = new methC(tb1.Text, tb2.Text, tb3.Text);
Frame.Navigate(typeof(BlankPage1));
}
}
}
如何获取存储在tb1,tb2,tb3中的数据显示在BlankPage1中?
namespace App2
{
public sealed partial class BlankPage1 : Page
{
public BlankPage1()
{
this.InitializeComponent();
}
private void btn2_Click(object sender, RoutedEventArgs e)
{
string four, five, six;
four = tb4.Text;
five = tb5.Text;
six = tb6.Text;
box.Text = four + five + six;
}
private void TextBlock_SelectionChanged(object sender, RoutedEventArgs e)
{
}
}
}
假设如何工作,MainPage接收3个条目,存储在methC中并从BlankPage获取显示tb1,tb2,tb3。 我该如何使这东西工作?
只要使用Type
参数导航到另一个页面,就不能使用构造函数来传递数据。 因此Microsoft提供了另一种方式来完成这项工作。
您可以使用以下Navigate函数重载来传递对象:
methC mc = new methC(tb1.Text, tb2.Text, tb3.Text);
string Param = JsonConvert.SerializeObject(mc);
Frame.Navigate(typeof(BlankPage1), Param);
在BlankPage1中覆盖OnNavigatedTo:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
methC myData = JsonConvert.DeserializeObject<methC>((string)e.Parameter);
Labelx.Text = myData.x;
, ....
base.OnNavigatedTo(e);
}
这是从MSDN
最坏的情况是通过静态成员分配它们,因此在BlankPage1类中可以添加:
public static methC Data { get; set; }
public BlankPage1()
{
mylabel.Text = Data.X;
, ....
}
您可以在导航之前分配值:
methC mc = new methC(tb1.Text, tb2.Text, tb3.Text);
BlankPage1.Data = mc;
Frame.Navigate(typeof(BlankPage1));
在主页上,您可以直接传递类对象的参数。
methC mc = new methC(tb1.Text, tb2.Text, tb3.Text);
Frame.Navigate(typeof(BlankPage1), mc);
在下一页中,您可以将其作为类对象接收
protected override void OnNavigatedTo(NavigationEventArgs e) {
navigationHelper.OnNavigatedTo(e);
methC item = e.Parameter as methC;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.