Container

Базовый тип для контейнеров визуальных элементов представления.

Description

Визуальные элементы, которые могут содержать внутри себя другие визуальные элементы, называются контейнерами, композитными или составными элементами. При этом сам контейнер называют родительским элементом, а его содержимое - дочерними элементами. Дочерние элементы не могут выходить за границы контейнера, но способ их расположения определяется каждым типом контейнера в отдельности и может не зависеть от настроек дочерних элементов.

Extends

Element

Syntax

new Container(parent)

Parameters

Name Type Description
parent Element Родительский элемент

Methods

Name Description
getItemTemplate Возвращает функцию шаблонизации дочерних элементов контейнера
setItemTemplate Устанавливает функцию шаблонизации дочерних элементов контейнера
getItems Возвращает коллекцию дочерних элементов контейнера
getGroupValueSelector Возвращает функцию, определяющую условие группировки дочерних элементов контейнера
setGroupValueSelector Устанавливает функцию, определяющую условие группировки дочерних элементов контейнера
getGroupItemTemplate Возвращает функцию шаблонизации заголовков групп
setGroupItemTemplate Устанавливает функцию шаблонизации заголовков групп

Events

Нет

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