Flex:使用数据绑定将一个项目添加到列表中

时间:2013-01-23 03:43:25

标签: xml flex list mxml httpservice

我正在尝试使用Flex / MXML将xml数据加载到List中。我有一个获取XML并将其放入列表的方法(我知道它正在正确地读取数据)但是当我运行应用程序时,我得到了这个错误:

TypeError: Error #1034: Type Coercion failed: cannot convert "User1" to mx.collections.IList.
at Function/<anonymous>()[/Users/Jacob/Documents/Adobe Flash Builder 4.6/App/src/views/MainMenu.mxml:52]

(我删除了一些错误日志)

我看到它说错误发生在第52行,如下所示:

<s:List id="xml_list" x="44" y="89" width="232" height="341" dataProvider="{get_xml.lastResult.Array.Item}"></s:List>

我已经完成了一些测试,并且我已经意识到只有当要添加的数据是1项时才会出现错误。如果有更多的1项,那么它完美地工作并将数据放入列表中。

当XML有一个Item时,它看起来像这样:

<Array>
<Item>Hello</Item>
</Array>

当XML有两个项目时,它看起来像这样:

<Array>
<Item>Hi</Item>
<Item>Hola</Item>
</Array>

所以我的问题是:有没有办法解决这个问题?任何帮助都非常感谢。

谢谢, 雅各布

2 个答案:

答案 0 :(得分:0)

试试这个:

<s:List id="xml_list" x="44" y="89" width="232" height="341" >
    <s:dataProvider>
        <s:XMLListCollection source="{get_xml.lastResult.Array.Item}" />
    </s:dataProvider>
</s:List>

答案 1 :(得分:0)

我已经解决了!我使用了Serge Him的帖子,但稍微改变了他的榜样。我已经开始工作的代码是:

<s:List id="games_list" x="44" y="89" width="232" height="341">
    <s:dataProvider>
        <s:ArrayCollection source="{get_games.lastResult.Games.Name}"/>
    </s:dataProvider>
</s:List>

非常感谢Serge Him让我指出了正确的方向!