Добавление нового типа свойств в текстовом описателе
Новый тип свойств можно добавить с помощью серверного расширения (см. Добавление нового свойства элементов управления) или описать непосредственно в текстовом описателе элемента управления.
Добавление нового типа свойства
-
Добавьте дочерний элемент
Property
в секциюProperties
текстового описателя. -
Добавьте в элемент
Property
аргументы:- Name
-
Название нового типа свойств.
- DataType
-
Тип значения свойств. В
DataType
может быть указан только стандартный тип — должно быть указано полное название типа (например,System.Boolean
). - ResourceKey
-
Название локализованного ресурса для отображаемого названия.
- Category
-
Категория свойства. Может иметь значения:
GeneralCategory
,DataCategory
,BehaviorCategory
,AppearanceCategory
,EventsCategory
,DefaultValueCategory
. - Editor
-
Имя редактора значения, которое указано при его регистрации в методе GetEditors расширения программы Конструктор Web-разметок.
- BindingConverter
-
Имя конвертера в серверном расширении для свойства
Type="Binding"
. - BindingResolver
-
Имя резолвера биндинга в серверном расширении для свойства
Type="Binding"
. - ItemsSource
-
Варианты значений свойства, которые будут отображаться в виде раскрывающегося списка.
В значении атрибута должно быть указано полное имя типа класса, реализующего интерфейс
IItemsSource
(см. ниже). - DefaultValue
-
Значение по умолчанию.
- DeviceDependent
-
Флаг, указывающий на то, что значение свойства зависит от типа клиентского устройства.
- Localized
-
Флаг, указывающий на то, что свойство является локализуемым.
Примеры объявления свойств
-
Свойство, получающее значения из источника значений (
ItemsSource
):<Property Name="SuperMode" DisplayName="Супер свойство с вариантами" Category="AppearanceCategory" DataType="System.Int32" DefaultValue="0" ItemsSource="SuperExtension.SuperVariantsSource" />
Пример реализации класса
SuperExtension.SuperVariantsSource
, предоставляющего значения для свойства:namespace SuperExtension { public class SuperVariantsSource : IItemsSource { public ItemCollection GetValues() { ItemCollection values = new ItemCollection(); values.Add(0, "Вариант 1"); (1) values.Add(1, "Вариант 2"); (2) values.Add(2, Resource.LocalizedVariant3); (3) return values; } } }
1 При выборе этого варианта, значение свойства будет 0. 2 При этом варианте, значение 1. 3 Имя варианта можно объявить в ресурсах с целью локализации. -
Свойство логического типа, зависящее от устройства (
DeviceDependent
), с категориейВнешний вид
(AppearanceCategory
) и значением по умолчанию false:<Property Name="ShowPreview" ResourceKey="History_ShowPreview" Category="AppearanceCategory" DataType="System.Boolean" DefaultValue="false" DeviceDependent="true" />
-
Свойство числового типа с категорией
Поведение
(BehaviorCategory
) и значением по умолчанию20
:<Property Name="RecordsOnPage" Editor="PositiveIntegerEditor" Category="BehaviorCategory" DataType="System.Int32" DefaultValue="20"/>
-
Свойство строкового типа:
<Property Name="DurationControlName" Category="BehaviorCategory" DataType="System.String"/>
-
Локализованное свойство (
Localized
) строкового типа со стандартным редактором (Editor
)LocalizedPropertyEditor
:<Property Name="ButtonText" Editor="LocalizedPropertyEditor" Localized="true" Category="AppearanceCategory" DataType="System.String"/>