【问题标题】:Flex: Add one item to list using Data BindingFlex:使用数据绑定将一项添加到列表
【发布时间】:2013-01-23 03:43:25
【问题描述】:

我正在尝试使用 Flex/MXML 将 xml 数据加载到列表中。我有一种获取 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>

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

谢谢, 雅各布

【问题讨论】:

  • 您能否大致发布一下当有一个项目与多个项目时 XML 的样子?我的 XML 测试无法重现该问题,因此我认为您的 XML 可能存在问题。
  • @TianzhenLin 好的。我编辑了上面的消息以显示我的 XML。

标签: xml apache-flex list mxml httpservice


【解决方案1】:

试试这个:

<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>

【讨论】:

  • 我已经让它工作了,我已经发布了我用作答案的代码。感谢您的帮助。
  • 太棒了!我不明白为什么它对你不起作用,但它已经不重要了
【解决方案2】:

我已经解决了!我使用了 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,他为我指明了正确的方向!

【讨论】:

    猜你喜欢
    • 2010-10-07
    • 2011-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-20
    • 2016-04-30
    • 1970-01-01
    相关资源
    最近更新 更多