Container¶
Базовый тип для контейнеров визуальных элементов представления.
Description¶
Визуальные элементы, которые могут содержать внутри себя другие визуальные элементы, называются контейнерами, композитными или составными элементами. При этом сам контейнер называют родительским элементом, а его содержимое - дочерними элементами. Дочерние элементы не могут выходить за границы контейнера, но способ их расположения определяется каждым типом контейнера в отдельности и может не зависеть от настроек дочерних элементов.
Methods¶
Name | Description |
---|---|
getItemTemplate | Возвращает функцию шаблонизации дочерних элементов контейнера |
setItemTemplate | Устанавливает функцию шаблонизации дочерних элементов контейнера |
getItems | Возвращает коллекцию дочерних элементов контейнера |
getGroupValueSelector | Возвращает функцию, определяющую условие группировки дочерних элементов контейнера |
setGroupValueSelector | Устанавливает функцию, определяющую условие группировки дочерних элементов контейнера |
getGroupItemTemplate | Возвращает функцию шаблонизации заголовков групп |
setGroupItemTemplate | Устанавливает функцию шаблонизации заголовков групп |
Container.metadata¶
Метаданные типа Container.
Properties¶
Name | Type | Description |
---|---|---|
Items* | Array /Object |
Элементы контейнера |
ItemTemplate | Element | Шаблон дочерних элементов контейнера, |
ItemFormat | DisplayFormat | Формат отображения дочерних элементов контейнера |
ItemSelector | Script | Функция, которая по переданным данным конструирует отображаемое значение |
ItemProperty | String |
Свойство дочерних элементов контейнера для отображения в контейнере |
GroupValueSelector | Script | Функция, определяющую условие группировки дочерних элементов контейнера |
GroupValueProperty | String |
Свойство, определяющее условие группировки дочерних элементов контейнера |
GroupItemTemplate | Element | Функция шаблонизации заголовков групп |
GroupItemFormat | DisplayFormat | Формат заголовков групп |
GroupItemSelector | Script | Функция, которая по переданным данным конструирует значение заголовков групп |
GroupItemProperty | String |
Свойство, отображаемое в качестве заголовков групп |
* Обязательное свойство.
Если поле Items заданно массивом, то Container не является шаблонизируемым и строится по метаданным Items. Если же Items является объектом, то он содержит привязку на источник элементов, для отображения которых необходимо задать шаблон.
ItemSelector и GroupItemSelector должны возвращать элементарные значения: строку или число.
Свойства ItemTemplate, ItemFormat, ItemSelector и ItemProperty являются взаимоисключающими. Если указать несколько из них, то для отображения будет выбрано наиболее приоритетное. В схеме свойства указаны в порядке приоритета. Кроме того, взаимноисключающими являются GroupValueSelector и GroupValueProperty, а также GroupItemTemplate, GroupItemFormat, GroupItemSelector и GroupItemProperty.
Examples¶
Рассмотрим случай, когда Items является массивом.
{
"StackPanel": {
"Items": [
{
"Icon": {
"Value": "remove"
}
},
{
"Label": {
"Text": "delete"
}
}
]
}
}
Пример шаблонизируемого контейнера:
{
"StackPanel": {
"Items": {
"Source": "People",
"Property": ""
},
"ItemTemplate": {
"StackPanel": {
"Items": [
{
"Label": {
"Value": {
"Source": "People",
"Property": "$.FullName"
}
}
},
{
"Label": {
"Value": {
"Source": "People",
"Property": "$.Age"
}
}
}
]
}
}
}
}
Контейнер с группировкой:
{
"ListBox": {
"ItemTemplate": {
"TextBox": {
"Name": "TextBox1",
"Value": {
"Source": "MainDataSource",
"Property": "#.Display"
}
}
},
"GroupItemFormat": "Connect: ${Display}",
"GroupValueProperty": "Display",
"Items" : {
"Source": "MainDataSource",
"Property": ""
}
}
}