События элемента управления файлами документа

Элемент управления файлами документа реализует интерфейс IFilesViewWithPreview, который добавляет подписку на события:

  • BeforeFileOpened, AfterFileOpened — перед и после открытия основного или дополнительного файла.

  • BeforeMainFileAdded, MainFileAdded — перед и после добавления основного файла.

  • BeforeAdditionalFileAdded, AdditionalFileAdded — перед и после добавления дополнительного файла.

  • BeforeMainFileRemoved, MainFileRemoved — перед и после удаления основного файла.

  • BeforeAdditionalFileRemoved, AdditionalFileRemoved — перед/после удаления дополнительного файла.

  • MainFileSelected — при выборе основного файла.

  • AdditionalFileSelected — при выборе дополнительного файла.

  • DocumentUnlocking, DocumentUnlocked — перед и после снятия блокировки с основного или дополнительного файла.

Для подписки на событие в скрипте карточки, достаточно получить из компонента карточки элемент управления файлами, возвращаемый из свойства FilesViewWithPreview. К примера подпишемся на событие, вызываемое перед открытием любого файла:

// Указываем дополнительные пространства имён
using DocsVision.BackOffice.ObjectModel.Services.Entities;
using DocsVision.BackOffice.Cards.CardDocument; (1)

/* часть кода пропущена */

private void CardDocument_CardActivated(System.Object sender, DocsVision.Platform.WinForms.CardActivatedEventArgs e) { (2)

 var documentCardControl = this.CardControl as DocsVision.BackOffice.Cards.CardDocument.MainControl; (3)
 if (documentCardControl.FilesViewWithPreview != null) {
  IFilesViewWithPreview filesViewWithPreview = documentCardControl.FilesViewWithPreview; (4)

  filesViewWithPreview.BeforeFileOpened += new EventHandler<DocumentOpenFileEventArgs>(FilesViewWithPreview_BeforeFileOpened); (5)
 }
}

private void FilesViewWithPreview_BeforeFileOpened(object sender, DocumentOpenFileEventArgs e) {
 if (e.File.FileType = DocumentFileType.Main) {
  MessageBox.Show("Открытие файла прервано");

  e.Cancel = true; (6)
 }
}
1 Подписываемся на события элемента управления при активации карточки.
2 Приводим тип компонента карточки к типу компонента карточки Документ.
3 Получаем элемент управления файлами.
4 Подписываемся на событие перед открытием файла .
5 Прерываем открытие.

Чтобы пример заработал нужно подключить дополнительную сборку: DocsVision.BackOffice.Cards.dll

В обработчиках событий, срабатывающих до исполнения соответствующей команды, можно добавить логику прерывания команды — установить e.Cancel в значение true.