private void btnClick(object sender, RoutedEventArgs e)
        {
            Button btn = sender as Button;

            switch (btn.Name)
            {
            case "btnBack":
                ((MainWindow)App.Current.MainWindow).btn_BackMenu();
                break;

            case "btnDel":
                if (SavedListBox.SelectedItems.Count != 0)
                {
                    if (PW.Access(1))
                    {
                        if (Utl.YesNo("Удалить выбранные?"))
                        {
                            spm.DeleteMarked(SavedListBox.SelectedItems);
                        }
                    }
                    SavedListBox.SelectedIndex = -1;
                }
                break;

            case "btnMarkAll":

                if (!markedAll)
                {
                    SavedListBox.SelectAll();
                    markedAll          = true;
                    btnMarkAll.Content = "снять выделение";
                }
                else
                {
                    SavedListBox.UnselectAll();
                    markedAll          = false;
                    btnMarkAll.Content = "выделить всё";
                }
                break;

            case "btnOpen":
                if (SavedListBox.SelectedItems.Count != 0)
                {
                    if (SavedListBox.SelectedItems.Count == 1)
                    {
                        ViewProtocolController vpc =
                            new ViewProtocolController(
                                ((SavedProtocolsManager.SavedElement)SavedListBox.SelectedItems[0]).ProtocolPath);
                        vpc.ShowProtocolPage();

                        SavedListBox.SelectedIndex = -1;
                    }
                    else
                    {
                        Utl.Message("Для просмотра выберите только один протокол");
                    }
                }
                break;
            }
        }
        /// <summary>
        /// Метод сохраняет отображаемый протокол
        /// в виде файла с html разметкой
        /// </summary>
        /// <param name="directory">путь к директории сохранения</param>
        /// <param name="filename">имя файла</param>
        public override void Save(string directory, string filename)
        {
            lock (_thislock)
            {
                try
                {
                    DirectoryInfo dirInfo = new DirectoryInfo(directory);

                    if (!dirInfo.Exists)
                    {
                        dirInfo.Create();
                    }

                    // ограничение на количество файлов в папке с протоколами
                    if ((dirInfo.GetFiles()).Length >= 50)
                    {
                        Utl.Message("Нет места для сохранения!\nПожалуйста удалите старые протоколы");
                    }
                    else
                    {
                        string fullPath = directory + @"\" + filename;

                        using (FileStream fs = new FileStream(fullPath, FileMode.Create, FileAccess.ReadWrite))
                        {
                            using (StreamWriter sw = new StreamWriter(fs))
                            {
                                sw.Write(_strBuilder.ToString());
                            }
                        }
                    }
                }
                catch (Exception exception)
                {
                    Console.WriteLine("Can't save protocol! Error: {0}", exception);
                }
            }
        }
 public override void Save(string directory, string filePath)
 {
     //не зачем повторно сохранять то, что уже сохранено
     Utl.Message("протокол уже сохранен");
 }