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