// Выбор вложения для сохранения private void ListBoxAttach_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (((ListBox)sender).SelectedIndex >= 0) { // Выбор имени файла для сохранения string filename = ((MyViewControl)DataContext).Message.MyAttachments[((ListBox)sender).SelectedIndex].Name; SaveFileDialog saveFileDialog = new SaveFileDialog() { FileName = filename }; if (saveFileDialog.ShowDialog() == true) { FileStream stream = new FileStream(saveFileDialog.FileName, FileMode.Create, FileAccess.Write); byte[] content = MailStorage.LoadAttach(Client.CurrentMailBox, filename); if (content.Length > 0) { stream.Write(content, 0, content.Length); } // Очистка памяти после скачивания content = null; stream.Dispose(); } // Снятие выделения элемента списка ((ListBox)sender).SelectedIndex = -1; } }