| Пакет | mx.controls.listClasses |
| Интерфейс | public interface IDropInListItemRenderer |
| Средство реализации | AdvancedDataGridGroupItemRenderer, AdvancedDataGridHeaderRenderer, AdvancedDataGridItemRenderer, AdvancedListBase, Button, ComboBox, DataGridItemRenderer, DateField, FTEAdvancedDataGridItemRenderer, FTEDataGridItemRenderer, HTML, Image, Label, ListBase, ListItemRenderer, MXAdvancedDataGridItemRenderer, MXItemRenderer, MenuItemRenderer, NumericStepper, OLAPDataGridGroupRenderer, RendererBase, TextArea, TileListItemRenderer, TreeItemRenderer |
| Язык версии: | ActionScript 3.0 |
| Версия продукта: | Flex 3 |
| Версии среды выполнения: | Flash Player 9, AIR 1.1 |
text. Эту операцию проще всего описать с помощью привязки данных, но при этом средство визуализации будет невозможно использовать в других столбцах сетки данных или другого списка с другими полями. Элемент IDropInListItemRenderer допускает повторное использование средства визуализации. Классы списка будут передавать больший объем данных в средство визуализации элементов, что позволит ему определить поле, используемое во время выполнения.
Компоненты, которые необходимо использовать в качестве средств визуализации или редакторов вставных элементов, должны реализовывать интерфейс IDropInListItemRenderer. Многие компоненты Flex реализуют данный интерфейс и поэтому могут быть использованы в качестве средств визуализации или редакторов вставных элементов в любом столбце или списке.
Средства визуализации или редакторы вставных элементов также должны реализовывать интерфейс IDataRenderer, определяющий свойство data.
Если компонент используется в качестве средства визуализации или редактора вставных элементов, то Flex инициализирует свойство компонента listData соответствующими данными из элемента управления списка. Затем компонент может использовать свойство listData для инициализации свойства data средства визуализации или редактора вставных объектов.
Свойство listData имеет тип BaseListData, а класс BaseListData имеет четыре подкласса: DataGridListData, ListData, TreeListData и MenuListData. Текущий тип данных значения свойства listData зависит от элемента управления, который использует средство визуализации или редактор вставных объектов. Для элемента управления DataGrid значение имеет тип DataGridListData, для элемента управления List – тип ListData, для элемента управления Tree – тип TreeListData, а для элемента управления Menu – тип MenuListData.
В следующем примере показан метод установщика для свойства data элемента управления NumericStepper, которое инициализирует свойство NumericStepper value в зависимости от значения свойства listData:
public function set data(value:Object):void
{
_data = value;
this.value = _listData ? parseFloat(_listData.label) : Number(_data);
dispatchEvent(new FlexEvent(FlexEvent.DATA_CHANGE));
}
В приведенном выше примере элемент управления NumericStepper игнорирует свойство data при задании свойства NumericStepper value и использует вместо него свойство listData.
Для реализации интерфейса IDropInListItemRenderer следует определить методы установщика и получателя, которые реализуют свойство listData. Метод установщика обычно записывает значение свойства listData во внутреннюю переменную. Класс списка обычно присваивает это значение, а затем устанавливает элемент поставщика данных в свойстве data.
Обратите внимание на то, что метод установщика для свойства listData не осуществляет передачу событий. Это обусловлено тем, что классы списка всегда задают свойство listData, а затем – свойство data. Задание свойства data также влечет за собой передачу события dataChange. Свойство listData никогда не задается отдельно, поэтому необходимость в передаче собственного события отсутствует.
Метод установщика data может вызвать метод invalidateProperties(), если в ходе его выполнения возникает необходимость в обновлении элемента управления. Разработчик компонента должен предусмотреть метод commitProperties(), который обнаруживает изменение свойства listData и выполняет соответствующие действия.
Метод получателя возвращает текущее значение внутренней переменной, как показано в следующем примере:
// Internal variable for the property value.
private var _listData:BaseListData;
// Make the listData property bindable.
[Bindable("dataChange")]
// Define the getter method.
public function get listData():BaseListData
{
return _listData;
}
// Define the setter method,
public function set listData(value:BaseListData):void
{
_listData = value;
}
Связанные элементы API
| Свойство | Определено | ||
|---|---|---|---|
| listData : BaseListData
Реализует свойство listData с помощью методов установщика и получателя. | IDropInListItemRenderer | ||
listData | свойство |
listData:BaseListData| Язык версии: | ActionScript 3.0 |
| Версия продукта: | Flex 3 |
| Версии среды выполнения: | Flash Player 9, AIR 1.1 |
Реализует свойство listData с помощью методов установщика и получателя.
Реализация
public function get listData():BaseListData public function set listData(value:BaseListData):voidTue Jun 12 2018, 11:34 AM Z