Доступ к подчиненным карточкам из карточки BackOffice
Функциональность класса компонента карточки типа Задание позволяет получать доступ к связанным карточкам: документам или другим заданиям. Список возможностей доступа к связанным карточкам определяется интерфейсом ICardView
который добавляет следующие свойства и методы:
-
SaveChildCardOnClosing
— задаёт или возвращает признак сохранения подчиненных карточек при их закрытии. Если значениеtrue
, то при закрытии подчиненной карточки изменения будут сохранение автоматически без запроса на сохранение. -
ChildCardActivated
— событие, которое срабатывает при активации компонента какой-либо подчиненной карточки. -
OnChildCardActivated(ActiveChildCardEventArgs)
— обработчик события активации подчиненной карточки. -
GetChildCardIds
— возвращает список идентификаторов подчиненных карточек. -
ActivateChildCard(Guid)
— активирует подчиненную карточку по её идентификатору. -
GetActivatedChildCards
— возвращает массив компонентов активированных карточек. Активированной считается карточка, компонент которой был загружен в память, при этом сама карточка может быть закрыта.
Ниже приведён пример, в котором в подчиненной карточке (должна быть активирована) устанавливается значение поле типа "Дата/Время":
private void GetActiveCardId_ItemClick(System.Object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
ICardView cardView = (this.CardControl as ICardView); (1)
BaseCardControl cardControl = cardView.GetActivatedChildCards()[0]; (2)
ICustomizableControl customizable = cardControl;
ILayoutPropertyItem registrationDate = customizable.FindPropertyItem<ILayoutPropertyItem>("CreationDate");
registrationDate.ControlValue = DateTime.Now.AddDays(-1); (3)
registrationDate.Commit();
}
1 | Получаем интерфейс ICardView компонента карточки "Задание". |
2 | Получаем компонент первой подчиненной карточки (должна быть активирована). |
3 | Получаем элемент управления и изменяем дату. |
private void ActivateCard_ItemClick(System.Object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
ICardView cardView = (this.CardControl as ICardView); (1)
Guid cardId = (this.CardControl as ICardView).GetChildCardIds()[0]; (2)
cardView.ActivateChildCard(cardId); (3)
}
1 | Получаем интерфейс ICardView компонента карточки Задание. |
2 | Получаем идентификатор первой дочерней карточки. |
3 | Активируем карточку. |