private void RefreshList() { try { // выгружаем в неё данные из файла personList = DeserializePerson.Deserialize("persons.xml"); // сортируем по дню и месяцу даты рождения personList.Collection.Sort((x, y) => x.birthDate.DayOfYear.CompareTo(y.birthDate.DayOfYear)); // прошедшие помещаем в конец списка personList.ReplacePastToEnd(); MessageBox.Show("Список обновлён."); } catch (Exception ex) { MessageBox.Show("Что-то пошло не так!\n\n" + ex.ToString(), "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error); } }
public static PersonCollection Deserialize(string path) { PersonCollection personCollection = new PersonCollection(); XmlSerializer formatter = new XmlSerializer(typeof(PersonCollection)); // десериализация, извлекаем список персон и выводим using (FileStream fs = new FileStream(path, FileMode.OpenOrCreate)) { if (new System.IO.FileInfo(path).Length != 0) { try { personCollection = (PersonCollection)formatter.Deserialize(fs); } catch (Exception ex) { System.Windows.MessageBox.Show("Что-то пошло не так!\n\n" + ex.ToString(), "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error); } } } return(personCollection); }
public PersonCollection(PersonCollection pc) { Collection = pc.Collection; }