// Сохранить данные в файле xml private void ToolStripMenuItemSaveXml_Click(object sender, EventArgs e) { SaveFileDialog saveFile = new SaveFileDialog { Filter = "xml files (*.xml)|*.xml|All files (*.*)|*.*", FilterIndex = 0, RestoreDirectory = true }; if (saveFile.ShowDialog() == DialogResult.OK) { ClientsXml xml = new ClientsXml(clients); // Создаём xml документ из списка клиентов xml.SaveXml(saveFile.FileName); // Сохраняем его в файл saveFile.FileName } }
// Загрузить данные из xml файла собственного формата private void ToolStripMenuItemLoad_Click(object sender, EventArgs e) { var openFileDialog = new OpenFileDialog { Filter = "xml files (*.xml)|*.xml|All files (*.*)|*.*", FilterIndex = 0, RestoreDirectory = true }; if (openFileDialog.ShowDialog() == DialogResult.OK) { // Открываем и загружаем файл данных со списком клиентов и контрактов(xml) var clientsXml = new ClientsXml(openFileDialog.FileName); if (clientsXml.Load_Ok) { // Сбрасываем номер текущего договора и очищаем DataGridView. tpNumbCurrentContract = 0; ClearDataGridView(); comboBoxClients.BeginUpdate(); // приостанавливаем изменение ComboBox, отображающего clients // Заполняем список клиентов с одновременным заполнением ComboBox(через событие в ListClients) // Заполнение происходит без нарушения сортировки clientsXml.XmlToClientsAndContracts(clients); SetComboBoxColumns(); if (comboBoxClients.Items.Count != 0) { // Выбираем первого клиента в списке и заполняем список договоров ListBoxContracts comboBoxClients.SelectedIndex = 0; } comboBoxClients.EndUpdate(); // обновляем содержимое ComboBox, отображающего clients } } LoadAllServicesToolStripMenuItem.Enabled = true; }