Элемент управления "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.