我的任务是创建一个多页面的UWP应用程序,需要通过多个页面传递一个学生对象。该应用程序从主页开始,其中有两个按钮,一个按钮用于添加新学生,另一个按钮用于查看学生详细信息。
我目前正在努力弄清楚如何将学生对象从“新学生页”传递到“学生详细信息”页面。我不允许将学生的信息存储在文件或数据库中。
当一个新的学生被添加时,信息应该存储在“学生”对象中,是否可以公开这个对象,这样就可以在不传递页面的情况下使用它?是否也可以将学生详细信息页上的文本块绑定到来自输入页的学生对象?
发布于 2018-12-10 08:14:06
您可以使用您的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
}发布于 2019-01-08 16:48:05
这不是解决这个问题的好办法。
你看…专家开发人员认为UI只是应用程序数据的“表示层”,而不是主要的逻辑层。
正确的方法是创建一个静态实体,它充当应用程序逻辑的“引擎”,并且在应用程序的所有会话中都存在。
实际上,实现这一点的通常方法是使用标准的MainPage作为应用程序的“外壳”,包含一个重定向到MainPage本身的静态字段(称为"Current"),以及一个包含所有应用程序数据和逻辑的AppViewModel类。然后通过将所有XAML控件绑定到MainPage.Current.ViewModel数据来访问它。
诚挚的问候
https://stackoverflow.com/questions/53701560
复制相似问题