2010-08-03 3 views
0

У меня есть список Flex и пользовательский ItemRenderer. Я бы хотел иметь элементов в списке используйте другой ItemRenderer (скажем, в зависимости от класса элемента). Это возможно?Могу ли я использовать другой ItemRenderer для разных элементов списка?

т.д .:

<s:List dataProvider="{_systems}" itemRenderer="myItemRenderer"/> 

Большинство предметов в _Системы использовать myItemRenderer. Но если элемент 3 _systems является «specialSystem», рендерингом будет «specialItemRenderer».

Возможно ли это?

ответ

1

Вы используете Canvas как ItemRenderer и реализуете механизм, который автоматически создаст другие элементы управления.

Подробнее вы можете найти в этой статье: Different Items renderers in List

Основная идея:

создается специальный ItemRenderer, который может создать «эмулировать» другие элементы управления, в нашем случае это подкласс Холст , который просто создает и добавляет желаемое управление . Тогда нам нужен какой-то механизм , чтобы рассказать нашему контейнеру, какой визуализатор мы хотим эмулировать, для этой цели мы используем ItemContainerData со специальными полями.

+1

Это был бы единственный подход для списков Flex 3, Halo. Но Flex 4 представила функцию itemRendererFunction, которая обеспечит гораздо более эффективную реализацию. – JeffryHouser

Смежные вопросы