Передача значений со страницы на другую страницу в списке

#xamarin.forms #xamarin.android

#xamarin.forms #xamarin.android

Вопрос:

это моя модель

  public class QMSRejection
        {
    
            public string Date { get; set; }
    
            public string Grade { get; set; }
    
            
            public string Resd { get; set; }
    
            public string Remarks { get; set; }
        }
  

это моя firstpage.xaml.cs, откуда я передаю данные на другую страницу!

      List<QMSRejection> DataToSave = new List<QMSRejection>();
                var rej = new QMSRejection();

                rej.Date = DateTime.Now.ToShortDateString();
                rej.Grade = GradeID;
                rej.Resd = ResdId;
                
                DataToSave.Add(rej);
 await Navigation.PushAsync(new Rejection2ndForm(DataToSave));
  

теперь на второй странице я получаю его, данные поступают, все работает нормально!

  public partial class Page2 : ContentPage
  {
    List<QMSRejection> DataToSave = new List<QMSRejection>();
    public Rejection2ndForm(List<QMSRejection> models)
    {
      InitializeComponent ();
      DataToSave = models;

    }
  }

            var rej = new QMSRejection();
            rej.Remarks = ent3.Text.ToString();
            DataToSave.add(rej);
  

У меня есть примечания к полям, которые я пытаюсь добавить к существующим данным, поступающим со страницы 1. Но эти строки создают еще одно поле IEnumerable в списке сохранения данных, и поле примечания не добавляется к предыдущим данным! Что я должен сделать вместо этих строк, чтобы сделать?
Поскольку я должен добавить поле примечания через page2.xaml.cs !

Ответ №1:

это создает новый QMSRejection объект и добавляет его в ваш список

 var rej = new QMSRejection();
rej.Remarks = ent3.Text.ToString();
DataToSave.add(rej);
  

если вместо этого вы хотите изменить существующий QMSRejection объект

 // [0] means the first object in the list
DataToSave[0].Remarks = ent3.Text.ToString();