在Windows Phone 8中的页面之间传递信息

时间:2016-04-05 06:05:15

标签: c# wpf visual-studio-2013 windows-phone-8.1 code-behind

我需要在Windows Phone 8中的三个页面之间传递一个简单的texbox。我一直在搜索,但我没有找到它,我试过这个,' https://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh771188.aspx'我有这个方法的问题:

private void navigationHelper_LoadState(object sender, LoadStateEventArgs e)

{

    string name = e.NavigationParameter as string;

    if (!string.IsNullOrWhiteSpace(name))
    {
        tb1.Text = "Hello, " + name;
    }
    else
    {
        tb1.Text = "Name is required.  Go back and enter a name.";
    }
}

我无法找到LoadStateEventArgs e,缺少using指令或程序集引用。

2 个答案:

答案 0 :(得分:0)

如果我正确理解了您的问题,您希望文本框中存储的值位于3个不同的页面。对吗?

检查并告诉我

   // let's assume that you have a simple class:
    public class PassedData
    {
       public string Name { get; set; } //for textBox1
       public string Name1 { get; set; } //for textBox2
       public string Name3 { get; set; } //for textBox3
       public string Name4 { get; set; } //for textBox4
       public string Name5 { get; set; } //for textBox5
       public int Value { get; set; }
    }

//create object of the class like this and asign values to the properties

PassedData abc=new PassedData();
abc.Name=TextBox1.Text;
abc.Name2=TextBox2.Text;
abc.Name3=TextBox3.Text;
abc.Value=TextBox4.Text.ToString();
    // then you navigate like this:
   Frame.Navigate(typeof(Page2), abc);

    // and in target Page you retrive the information:
    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        PassedData data = e.Parameter as PassedData;
    }

答案 1 :(得分:0)

我不会过分关注您传递的数据,而是关注作为应用程序主干的数据模型。应该有一个包含要存储的文本内容的数据模型类。这个类的实例应该"幸存"任何页面,所以如果你有一个页面写入此属性,那么你可以有另一个页面显示该字段的值。您还应该考虑为每个页面创建一个视图模型,该模型用作在模型和页面之间传输属性值的粘合代码,如果您有类型转换,数据验证,必填字段等,也可以提供帮助。