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