ArrayCollection getItemAt

Я создал средство визуализации элементов для компонента списка Flex Spark. Проблема в том, что этот код работать не будет:

    <s:Label left="10" right="10" top="10" bottom="10" fontSize="13" text="{data.getItemAt(1).toString()}"
         textAlign="left" verticalAlign="middle"/>

Хотя этот код будет:

    <s:Label left="10" right="10" top="10" bottom="10" fontSize="13" text="{data[1].toString}"
         textAlign="left" verticalAlign="middle"/>

Я не могу использовать более поздний код из-за проблем с привязкой. Кто-нибудь знает, что я делаю не так?


person Chris Smith    schedule 02.08.2011    source источник
comment
Пожалуйста, покажите весь код в вашем средстве визуализации элементов и, пожалуйста, покажите, какие данные вы получаете. Мне кажется, что здесь есть тихая ошибка, потому что отправляемые данные - это массив, а не ArrayCollection, поэтому функция getItemAt не работает и не связывается.   -  person J_A_X    schedule 02.08.2011


Ответы (1)


Как сказано в комментарии @J_A_X, это две совершенно разные вещи.

{data.getItemAt(1)...

Относится к коллекции ArrayCollection или, возможно, к какой-либо другой коллекции.

{data[1]...

Ссылается на массив.

Попытка рассматривать массив как коллекцию массивов не приведет вас очень далеко. Я бы рекомендовал убедиться, что каждый элемент в вашем списке на самом деле является ArrayCollection. В качестве альтернативы я бы более решительно поддержал замену их объектами значений и привязку к «заголовку», «тексту» или любому другому свойству, которое более правильно определяет текст, который вы хотите отобразить.

{data.title}
person Sam DeHaan    schedule 02.08.2011
comment
Да, наверное, я ошибаюсь. data - это коллекция ArrayCollection, содержащая массивы. Есть идеи, как преобразовать вложенные массивы в ArrayCollections? - person Chris Smith; 02.08.2011
comment
Откуда берутся массивы массивов? - person Sam DeHaan; 02.08.2011