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": ""
}
}
}