Flex List dataprovider隐式强制错误

时间:2012-02-21 21:56:43

标签: flex

我有这个错误,我不知道如何解决。请帮助我,因为我对Flex世界非常陌生。

我有这个函数返回一个ArrayList。

public function createDataProvider():ArrayList
{
    ....
   return new ArrayList(imgArray);
}

稍后,我在这里使用它:

<s:List id="pubmapList"
    dragEnabled="false" dropEnabled="false" dragMoveEnabled="false"
    dataProvider="{createDataProvider}">

在这里,我收到一条错误说:将类型值隐式强制转换为不相关类型mx.collections.ilist

我认为IList实现包括ArrayList。任何建议表示赞赏。谢谢!

1 个答案:

答案 0 :(得分:1)

我认为问题在于createDataProvider是一个函数。所以

dataProvider="{createDataProvider}"

绑定到函数,而不是函数的结果。相反,试试这个:

dataProvider="{createDataProvider()}"

更好的是绑定到一个属性,所以你可以使用[Binding] -metatag,例如:

[Bindable]
private var _array:ArrayList;

public function createDataProvider() : void
{
    ...
    _array = new ArrayList(data);
}

<s:List dataProvider="{_array}" />

现在对_array的任何更改都会自动更新所有绑定。