Как передать объекты через несколько страниц в UWP - PullRequest
0 голосов
/ 10 декабря 2018

Мне поручено создать многостраничное приложение UWP, которое должно пропускать объект ученика через несколько страниц.Приложение запускается на главной странице, где есть две кнопки: одна для добавления нового ученика, а затем и другая для просмотра сведений об учениках.

В настоящее время я пытаюсь выяснить, как передать ученика.объект от "новой страницы студента" до страницы "информации о студенте".Мне не разрешается хранить информацию об учениках в файле или базе данных.

Когда новый ученик добавлен, информация должна храниться в объекте ученика, возможно ли сделать этот объект общедоступным, чтобыможно использовать, не пропуская его через страницы?Можно ли также связать текстовые блоки на странице сведений об ученике с объектом ученика, который находится на странице ввода?

Ответы [ 2 ]

0 голосов
/ 08 января 2019

Это не очень хороший способ решения этой проблемы.

Вы видите ... опытный разработчик видит пользовательский интерфейс только как "уровень представления" для данных приложения, а НЕ как основной логический уровень.

Правильный способ сделать это - создать статическую сущность, которая действует как «движок» логики вашего приложения и присутствует в течение всего сеанса приложения.

Обычный способ реализовать это,фактически используется стандартная MainPage в качестве «оболочки» приложения, содержащей статическое поле (называемое «Current»), которое перенаправляет на саму MainPage, и класс AppViewModel, который содержит все данные и логику приложения.Затем вы получаете доступ к данным MainPage.Current.ViewModel, привязывая к нему все элементы управления XAML.

С уважением

0 голосов
/ 10 декабря 2018

Вы можете использовать свой объект класса 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
}
...