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

Лента карточки — сущность типа RibbonControl, доступ к которой обеспечивает одноименное свойство класса ICustomizableControl:
RibbonControl ribbonControl = (CardControl as ICustomizableControl).RibbonControl;

Класс RibbonControl предоставляет доступ к существующим элементам ленты (страницы, группы и элементы), а также позволяет добавлять новые.

В качестве примера использования данной сущности можно рассмотреть сценарий добавления на ленту карточки новой кнопки на страницу Документ в группу Общие.

Кнопка может добавляться, когда стандартных механизмов (например, ролевой модели) недостаточно для реализации сценария:
  • При загрузке карточки,

  • Если соблюдены определённые условия.

  • Если выполняются определённые действия с карточкой.

  • Если выполняется иная бизнес-логика. В приведенном далее примере добавление нового элемента — кнопки, выполняется при загрузке карточки.

private void CardDocument_CardLoaded(System.Object sender, System.EventArgs e) (1)
{
 ICustomizableControl customizable = this.CardControl as ICustomizableControl; (2)
 if (customizable != null)
 {
  DevExpress.XtraBars.BarButtonItem button = new DevExpress.XtraBars.BarButtonItem(customizable.BarManager, "Новая кнопка"); (3)

  button.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(MyRibbonButton_ItemClick); (4)

  customizable.RibbonControl.Pages["Документ"].Groups["commonActionsRibbonPageGroup"].ItemLinks.Add(button); (5)
 }
}

private void MyRibbonButton_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) (6)
{
 MessageBox.Show("Выполняется сценарий нажатия кнопки 'Новая кнопка'");
}
1 Обработчик загрузки карточки нужно добавить через Конструктор разметок.
2 Получение доступа к элементам разметки.
3 Создание кнопки.
4 Обработчик нажатия.
5 Добавление кнопки на ленту.

Обратите внимание, что доступ к определённой странице осуществляется по отображаемому на ней тексту, а к группе элементов — по названию.

Название и текст элементов задаются при добавлении через "Конструктор разметок", а для стандартных (как в примере) сущностей данные параметры можно получить, к примеру, предварительно перебрав их через foreach.

6 Обработчик нажатия добавленной кнопки.