/* События */
 /* Исполняется при закрытии окна. Проверяет сохранён ли список при выходе */
 protected override void OnClosing(CancelEventArgs e)
 {
     e.Cancel = true;
     Console.WriteLine(this.ToString() + ": Закрытие окна");
     if (!saved)
     {
         MessageBoxResult dialog = MessageBox.Show("Сохранить изменения в " + this.Title.Remove(this.Title.Length - 1) + "?",
                                                   "Exit", MessageBoxButton.YesNoCancel, MessageBoxImage.Warning);
         if (dialog == MessageBoxResult.Yes)
         {
             if (MenuController.SaveList(this, saved, selected_users.ToList()))
             {
                 Console.WriteLine(this.ToString() + ": Выход с сохранением списка");
                 saved = true;
             }
             else
             {
                 return;
             }
         }
         else if (dialog == MessageBoxResult.No)
         {
             Console.WriteLine(this.ToString() + ": Выход без сохранения списка");
             saved = true;
         }
         else if (dialog == MessageBoxResult.Cancel)
         {
             Console.WriteLine(this.ToString() + ": Отмена");
             return;
         }
     }
     e.Cancel = false;
     App.Current.MainWindow.Show();
     base.OnClosing(e);
 }
 /* Сохраняет список */
 private void MenuSaveList(object sender, RoutedEventArgs e)
 {
     saved = MenuController.SaveList(this, saved, selected_users.ToList());
 }