Отображение информации из XML в ListView - C#

Узнай цену своей работы

Формулировка задачи:

В ListView нужно сохранить информацию, которую я передаю из другой формы. Как передать и сохранить ее в XML я поняла, но где вызвать метод LoadAlarmClock понять не могу. Мне нужно чтоб вся сохраненная информация отображалась в ListView сразу при открытии формы.
        void add_Click(object sender, EventArgs e)
        {
            FormAdd formAdd = new FormAdd();
            if (formAdd.ShowDialog() == DialogResult.OK)
            {
                AlarmClock alarmClock = formAdd.GetDate();
                AddInListView(alarmClock);
                SaveAlarmClock(ref this.listView1);
            }
        }

        //Добавляем 
        private void AddInListView(AlarmClock alarmClock)
        {
            int index = this.listView1.Items.Add(alarmClock.TimeAlarm.ToLongTimeString() + " " + alarmClock.TimeAlarm.ToLongDateString()).Index;
            this.listView1.Items[index].SubItems.Add(alarmClock.Message);
            this.listView1.Items[index].Checked = true;
            this.listView1.Items[index].Tag = alarmClock;
        }
 
        //Сохраняем 
        private void SaveAlarmClock(ref ListView listView1)
        {
            AlarmClock[] array = new AlarmClock[listView1.Items.Count];
            for (int i = 0; i < array.Length; i++)
            {
                array[i] = (AlarmClock)listView1.Items[i].Tag;
            }
 
            List<AlarmClock> list = new List<AlarmClock>();
            list.Clear();
 
            for (int i = 0; i < array.Length; i++)
            {
                list.Add(array[i]);
            }
 
            XmlSerializer serializer = new XmlSerializer(typeof(List<AlarmClock>));
            TextWriter textWriter = new StreamWriter(@"lib.xml");
            serializer.Serialize(textWriter, list);
            textWriter.Close();
        }
 
        //Загружаем
        private void LoadAlarmClock(ref ListView listView1)
        {
            XmlSerializer deserializer = new XmlSerializer(typeof(List<AlarmClock>));
            TextReader textReader = new StreamReader(@"lib.xml");
            List<AlarmClock> list = (List<AlarmClock>)deserializer.Deserialize(textReader);
            for (int i = 0; i < list.Count; i++)
            {
                AddInListView(list[i]);
            }
            textReader.Close();
        }

Решение задачи: «Отображение информации из XML в ListView»

textual
Листинг программы
 private void Form1_Load(object sender, EventArgs e)
   {
    //LoadAlarmClock
   }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.067 из 5
Похожие ответы