Search code examples
apache-flexactionscriptitemrendererarraycollection

ArrayCollection getItemAt


I created an Item Renderer for the Flex Spark List Component. The problem is that this code will not work:

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

While this code will:

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

I can't use the later code because of binding issues. Does anyone have any idea on what I'm doing wrong?


Solution

  • As @J_A_X' comment stated, these are two completely different things.

    {data.getItemAt(1)...
    

    Refers to an ArrayCollection, or possibly some other collection.

    {data[1]...
    

    Refers to an Array.

    Attempting to treat an array as an array collection will not get you very far. I would recommend ensuring that the each item in your list is actually an ArrayCollection. Alternatively, I would more strongly support replacing them with value objects, and binding to a 'title','text', or whatever property more correctly defines the text you wish to display.

    {data.title}