我的任务是创建一个多页面的UWP应用程序,该应用程序需要通过多个页面传递学生对象。该应用程序从主页上启动,该页面上有两个按钮,一个按钮用于添加新学生,然后另一个按钮用于查看学生的详细信息。
我目前正在努力找出如何将学生对象从“新学生页面”传递到“学生详细信息”页面。我不允许将学生信息存储在文件或数据库中。
添加新学生后,该信息应存储在Student对象中,是否可以将该对象公开,以便无需通过页面即可使用它?还可以将学生详细信息页面上的文本块绑定到输入页面上的学生对象吗?
答案 0 :(得分:2)
您可以使用Student
类对象,然后将Navigate
作为参数传递给另一个页面。
在New Student
页中:
void ButtonShowDetails_Click(sender , ....)
{
var student = new Student();
student.Name="Joe";// or txtStudentName.Text
/// etc
/// etc
Frame.Navigate(typeof(pgStudentDetails), student);
}
在pgStudentDetails
页中:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
var param = (Student)e.Parameter; // get parameter
txtName.Text= param.Name;//show data to user
}
答案 1 :(得分:0)
这不是解决此问题的好方法。
您看到的……专业开发人员仅将UI视为应用程序数据的“表示层”,而不是主要逻辑层。
正确的方法是创建一个静态实体,该实体充当应用程序逻辑的“引擎”,并且在所有应用程序会话期间都存在。
事实上,通常的实现方法是将标准MainPage用作应用程序的“外壳”,其中包含一个重定向到MainPage本身的静态字段(名为“ Current”)和一个AppViewModel类,包含所有应用程序数据和逻辑。 然后,通过将所有XAML控件绑定到MainPage.Current.ViewModel数据。
最诚挚的问候