Всем привет.
Задача проста: есть UI и его модель, в UI может быть отображено определенное количество контролов типа DropDownList, при этом модель является поставщиком списка элементов для каждого такого контрола. Пробовал использовать для решения этой задачи mx:Repeater, но производительность и глюкавость этого компонента оставляет желать лучшего. В частности наблюдал как при открытии UI его caption, даже не знаю как это назвать, прыгал что-ли. Делал как-то так:
Код AS3:
<mx:Tile direction="vertical"
height="100%"
width="100%">
<mx:Repeater id="dropDownListContainer"
dataProvider="{model.dropDownListSelectedValues}">
<s:DropDownList dataProvider="{model.dropDownListItems}"
selectedItem="{dropDownListContainer.currentItem}"
labelField="label"/>
</mx:Repeater>
</mx:Tile>
где model.dropDownListSelectedValues - это ArrayList, размер которого по сути определяет количество контролов DropDownList и являющийся поставщиком выделенных по умолчанию элементов для каждого контрола.
model.dropDownListItems - это ArrayList со списком элементов для DropDownList.
Теперь я хочу все это дело переписать с использованием спаркового DataGroup, прочитал, что это хорошая альтернатива mx:Repeater.
Код получился следующим:
Код AS3:
<s:DataGroup id="dropDownListContainer"
dataProvider="{model.dropDownListSelectedValues}"
itemRenderer="spark.components.DropDownList">
<s:layout>
<s:TileLayout orientation="columns"
requestedColumnCount="2"
requestedRowCount="3" />
</s:layout>
</s:DataGroup>
Вопрос в том, как мне в этом случае для каждого DropDownList подсунуть список элементов из модели model.dropDownListItems? Подозреваю, что для этого нужно использовать кастомный рендерер, но как мне в него передать значения model.dropDownListItems? Может быть и вовсе существует альтернативное решение. В общем, заранее благодарю за ответы и советы.