PropertyDescription — класс
Класс PropertyDescription
содержит описание свойства элемента управления в расширении программы Конструктор Web-разметок.
Пространство имён: DocsVision.Platform.Tools.LayoutEditor.ObjectModel.Descriptions
Сборка: DocsVision.LayoutEditor.ObjectModel.dll
Конструкторы
Имя | Описание |
---|---|
|
Инициализирует новый экземпляр класса |
Свойства
Имя | Описание |
---|---|
|
Зарезервировано. |
|
Задаёт или возвращает категорию свойства. |
|
Задаёт или возвращает функцию обновления ключей локализации при копировании свойства с сериализованным значением. |
|
Задаёт или возвращает функцию проверки доступности свойства для настройки в текущем контексте (к примеру, в текущем типе разметки). |
|
Задаёт или возвращает функцию получения нужных ключей локализации при копировании свойства с сериализованным значением. |
|
Задаёт или возвращает значение по умолчанию. |
|
Задаёт или возвращает флаг, указывающий, зависит ли значение свойства от типа клиентского устройства. |
|
Задаёт или возвращает строковый ресурс, предоставляющий локализованное название элемента управления. |
|
Задаёт или возвращает тип компонента редактирования (редактора) значения свойства. Редактор является компонентом UserControl с реализованным интерфейсом |
|
Задаёт или возвращает флаг, указывающий, будет ли данное свойство исключено из пакета свойств элемента управления, передаваемых в клиентскую часть Web-клиента. Свойство с установленным флагом |
|
Задаёт или возвращает метод, генерирующий для свойства значение по умолчанию. |
|
Задаёт или возвращает метод, генерирующий значение свойства при копировании элемента управления, содержащего данное свойство. |
|
Задаёт или возвращает функцию, реализующую механизм получения и сохранения значения свойства. |
|
Задаёт или возвращает флаг, определяющий, является ли свойство скрытым. Скрытое свойство не отображается при настройке элемента управления. |
|
Задаёт или возвращает функцию, проверяющую является ли элемент управления доступным только на чтение. |
|
Задаёт или возвращает тип компонента, который предоставляет список готовых значений свойства, из которого значение свойства выбирается. |
|
Задаёт или возвращает флаг, указывающий, является ли свойство локализуемым. Свойство должно быть строкового типа. Для редактирования значения локализуемого свойства в Editor должен быть указан тип редактора |
|
Задаёт или возвращает уникальное название свойства. |
|
Задаёт или возвращает порядок отображения свойства в текущей категории свойств. Чем выше порядок, тем выше будет отображено свойство. |
|
Задаёт или возвращает название компонента, предоставляющего дополнительную возможность настройки свойства: |
|
Задаёт или возвращает флаг, указывающий, является ли значение элемента управления доступным только на чтение. |
|
Задаёт или возвращает флаг, указывающий, требуется ли обновлять отображаемое значение свойства при изменении значения. В |
|
Задаёт или возвращает тип значения свойства. |
|
Задаёт или возвращает функцию валидации значения свойства. |
Примеры
Следующий код демонстрирует пример свойства Slider
, добавляемого в категорию Данные. Для свойства назначается специализированный редактор значения — SliderEditor
.
private PropertyDescription GetSliderPropertyDescription()
{
return new PropertyDescription (1)
{
Type = typeof(string), (2)
Name = Constants.SampleImage.Slider, (3)
Category = PropertyCategoryConstants.DataCategory, (4)
DisplayName = Resources.ControlTypes_SliderProperty, (5)
DefaultValue = String.Empty, (6)
ExcludeFromIL = true, (7)
Editor = typeof(SliderEditor), (8)
CollectLocalizationKeys = args => (9)
{
var value = (string)args.ControlInfo.GetProperty(args.PropertyDescription.Name); (10)
var items = SliderModeHelper.StringToItems(value); (11)
var keys = args.LocalizationKeys; (12)
foreach (var item in items) (13)
{
if (!string.IsNullOrEmpty(item.DescriptionLocalizationKey))
keys.Add(item.DescriptionLocalizationKey);
}
},
ChangeLocalizaionKeys = args => (14)
{
var value = (string)args.ControlInfo.GetProperty(args.PropertyDescription.Name);
var items = SliderModeHelper.StringToItems(value);
var mapping = args.LocalizationMapping;
foreach (var item in items)
{
if (!string.IsNullOrEmpty(item.DescriptionLocalizationKey))
{
string newKey;
if (mapping.TryGetValue(item.DescriptionLocalizationKey, out newKey)) (15)
item.DescriptionLocalizationKey = newKey;
}
}
return SliderModeHelper.ItemsToString(items); (16)
}
};
}
1 | Создаем экземпляр класса описания свойства . |
2 | Определяем строковый тип данного свойства ЭУ. Реальное значение сериализуемое. |
3 | Указывается уникальное название. |
4 | Категория для размещения свойства Данные. |
5 | Отображаемое название свойства. |
6 | Пустое значение по умолчанию. |
7 | Свойство не должно передаваться на клиентскую сторону Web-клиента. |
8 | Указываем специфический редактор значения свойства. |
9 | Определяем метод, который будет вызываться при копировании свойства. Метод получает ключи локализации DescriptionLocalizationKey из объекта свойства args.PropertyDescription.Name и заполняет ими коллекцию args.LocalizationKeys. |
10 | Получаем значение требуемого свойства. |
11 | Десериализуем значение свойства в нужный класс. |
12 | Получаем из параметров (передается в args) элемента управления текущей разметки. |
13 | Заполняем keys ключами из описания свойства. |
14 | Определяем метод, который будет вызываться при копировании элемента управления и, соответственно, его свойств. |
15 | Создаем связь. |
16 | Сериализуем значение свойства. |