Доступ к элементам управления карточки

Приведенная далее функциональность доступна только карточкам, компонент которых унаследован от базового класса BaseCardControl.

Базовый класс карточки (BaseCardControl) реализует интерфейс ICustomizableControl, методы которого можно использовать для доступа к элементам управления карточки.

К примеру, метод ICustomizableControl.FindPropertyItem может быть использован для поиска элементов управления с известным названием и типом:

private void FindControl_ItemClick(System.Object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
 ICustomizableControl customizable = CardControl as ICustomizableControl; (1)

 var theme = customizable.FindPropertyItem<DevExpress.XtraEditors.TextEdit>("Theme"); (2)
}
1 Получение доступа к разметке карточки.
2 Получение элемента управления типа для работы со стройкой текста с именем Theme.

Название элемента управления представлено в свойствах элемента управления в разметке карточки (Конструктор разметок).

Для определения типа элемента управления можно воспользоваться таблицей, приведенной ниже.

Стандартные элементы управления

Тип элемента управления Тип для поиска

Вид

DevExpress.XtraEditors.ButtonEdit

Время

DevExpress.XtraEditors.TimeEdit

Выбор вида

DocsVision.BackOffice.WinForms.Controls.RowChooseBox

Выбор папки

DocsVision.BackOffice.WinForms.Controls.FolderChooseBox

Группа радио кнопок

DevExpress.XtraEditors.RadioGroup

Да / Нет

DevExpress.XtraEditors.CheckEdit

Дата

DevExpress.XtraEditors.DateEdit

Дата/Время

DevExpress.XtraEditors.DateEdit

Дерево исполнения

DocsVision.BackOffice.WinForms.Controls.TaskTreeView

Дерево связей

DocsVision.BackOffice.WinForms.Controls.CardLinksView

Значение из справочника

DocsVision.BackOffice.WinForms.Controls.RowChooseBox

Изображение

DevExpress.XtraEditors.PictureEdit

История

DocsVision.BackOffice.WinForms.Controls.HistoryGrid

Карточка

DocsVision.BackOffice.WinForms.Controls.CardChooseBox

Категории

DocsVision.BackOffice.WinForms.Controls.CategoryListView

Кнопка

DevExpress.XtraEditors.SimpleButton

Коллекция значений

DocsVision.BackOffice.WinForms.Controls.RowMultiChooseBox

Контрагент

DocsVision.BackOffice.WinForms.Controls.RowChooseBox

Нумератор

DocsVision.BackOffice.WinForms.Controls.NumeratorBox

Обсуждение

DevExpress.XtraEditors.XtraUserControl

Подразделение

DocsVision.BackOffice.WinForms.Controls.RowChooseBox

Подразделение контрагента

DocsVision.BackOffice.WinForms.Controls.RowChooseBox

Поле секции

DocsVision.BackOffice.WinForms.Controls.FieldSelector

Предпросмотр файла

DocsVision.BackOffice.WinForms.Controls.Preview

Просмотр состояния

DevExpress.XtraEditors.TextEdit

Радио кнопка

System.Windows.Forms.RadioButton

Сотрудник

DocsVision.BackOffice.WinForms.Controls.CommunicativeChooseBox

Сотрудники

DocsVision.BackOffice.WinForms.Controls.CommunicativeMultiChooseBox

Список

DevExpress.XtraEditors.ComboBoxEdit

Ссылки

DocsVision.BackOffice.WinForms.Controls.ReferenceListView

Строка

DevExpress.XtraEditors.TextEdit

Строка конструктора справочников

DocsVision.BackOffice.WinForms.Controls.UniversalItemChooseBox

Таблица

System.Windows.Forms.UserControl

Текст

DevExpress.XtraEditors.MemoEdit

Целое число

DevExpress.XtraEditors.SpinEdit

Число

DevExpress.XtraEditors.SpinEdit

В данной таблице:
  • Тип элемента управления — тип, который указан в свойстве искомого элемента управления в разметки карточки, в Конструкторе разметок.

  • Тип для поиска — тип, по которому можно выполнить поиск элемента управления.

Для работы со значениями элементов управления, рекомендуется получать элементы управления по интерфейсу ILayoutPropertyItem, который предоставляет метод сохранения изменений — Commit.

Пример скрипта, изменяющего дату регистрации документа по нажатию кнопки в карточке:
private void SetPreviousDate_ItemClick(System.Object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
 ICustomizableControl customizable = CardControl;

 ILayoutPropertyItem registrationDate = customizable.FindPropertyItem<ILayoutPropertyItem>("RegistrationDate"); (1)

 registrationDate.ControlValue = DateTime.Now.AddDays(-1); (2)
 registrationDate.Commit(); (3)
}
1 Получение даты регистрации документа.
2 Предыдущий день (без анализа выходных дней).
3 Сохранение свойств элемента.
Другой пример — вывод содержимого файла на просмотр в элементе управления типа "Предпросмотр файла":
private void GetThemeButton_Click(System.Object sender, System.EventArgs e)
{
 ICustomizableControl control = CardControl;

 DocsVision.BackOffice.WinForms.Controls.Preview previewControl = control.FindPropertyItem<DocsVision.BackOffice.WinForms.Controls.Preview>("PreviewControl"); (1)

 previewControl.ShowPreview(@"c:\Sample.docx"); (2)
}
1 Получение элемента управления.
2 Отображение содержимого.

Чтобы вывести содержимое файла карточки, достаточно совместить приведенный выше сценарий с механизмом выгрузки, к примеру, основного файла документа методом DownloadMainFile сервиса IDocumentService.

Необходимо учитывать, что в разметке карточек библиотеки Базовые объекты имеются элементы управления, недоступные для метода FindPropertyItem. В качестве примера можно привести элемент управления, объединяющий область вложений и область предварительного просмотра, в карточке "Документ". Доступ к такому элементу управления не может быть получен стандартным способом, а в Конструкторе разметок данный элемент управления не имеет названия.

Для получения информации по элементам управления DevExpress, рекомендуем обращаться к соответствующим разделам на сайте производителя.