Элемент управления "CategoryListView"
Элемент CategoryListView
предоставляет функциональность выбора категории из дерева категорий. Соответствует элементу управления Категории Конструктора разметок.
Для работы CategoryListView
необходимо наличие в карточке, к которой привязан данный элемент управления, поля, ссылающегося на экземпляр карточки Список категорий, содержащей список категорий. В качестве примера можно рассмотреть часть класса карточки, у которой описана специальное поле:
private Guid mainSectionID = new Guid("783CD108-BA4A-432D-9C12-B32E0577D53C"); (1)
private string categoryListFieldName = "CategoryList"; (2)
private CategoryList cardCategoryList;
protected override void OnCardInitialized(EventArgs e) (3)
{
base.OnCardInitialized(e); (4)
InitializeComponent();
SectionData mainSection = this.CardData.Sections[mainSectionID]; (5)
RowData mainSectionRow = (mainSection.Rows.Count = 0) ? mainSection.CreateRow() : mainSection.Rows[0];
Guid? cardCategoryID = mainSectionRow.GetGuid(categoryListFieldName);
if (cardCategoryID.HasValue = false)
{
cardCategoryID = ObjectContext.GetService<UserSession>().CardManager.CreateCardData(new Guid("337CC874-BF87-4C70-A29B-F099F630B9F2")).Id;
mainSectionRow.SetGuid(categoryListFieldName, cardCategoryID);
}
cardCategoryList = ObjectContext.GetObject<CategoryList>(cardCategoryID); (6)
this.categoryListView.Initialize(ObjectContext, cardCategoryList); (7)
}
1 | Идентификатор секции, содержащей ссылочное поле со ссылкой на карточку "Список категорий". |
2 | Псевдоним ссылочного поля, которое ссылается на карточку "Список категорий". |
3 | Инициализация карточки. |
4 | Начало инициализации — стандартное. |
5 | Далее, получение и при необходимости установка ссылки в ссылочном поле. |
6 | Получение карточки "Список категорий". |
7 | Инициализация CategoryListView . |
Свойства
-
CategoryList
— возвращает связанную карточку "Список категорий". -
CategoryService
— возвращает сервисICategoryListService
для работы со списками категорий. -
Context
— контекст объектов. -
RootCategory
— определяет корневую категорию, начиная с которой будет построено дерево категорий. -
StatesOperations
— предоставляет доступ к правам доступа на совершение типовых операций сCategoryListView
.
Методы
-
Initialize(ObjectContext, CategoryList)
— данный метод используется для передачи элементу управления контекста объектов и списка категорий карточки. Должен быть вызван на этапе инициализации карточки (см. пример выше). -
Rebind()
— выполняет перестроение дерева категорий. -
RefreshData()
— повторно загружает данные для списка категорий.
События
-
ListChanged
— вызывается при любых изменениях (снятие/установка флажка на категории) в списке категорий. -
CategoryChecked
— вызывает при установке флажка на категории. -
CategoryUnchecked
— вызывает при снятии флажка с категории.
Первоначально срабатывает событие CategoryChecked
/CategoryUnchecked
, после чего срабатывает ListChanged
.