从<list> </list>的空dataProvider开始

时间:2010-05-25 06:53:41

标签: flex actionscript-3 adobe itemrenderer

我正在使用List我需要在开始时为空。我正在根据需要通过单击按钮添加项目。由于它是空的,我没有添加dataProvider属性

<s:List id="thelist" itemRenderer="listIR" />

要添加项目,我会直接将其添加到dataProvider

thelist.dataProvider.addItem()

但是当我这样做时,它给了我这个错误

 #1009: Cannot access a property or method of a null object reference.

此外,我在Alert itemRenderer本身中有一个调试listIR,我看到创建列表时,我得到了两次警报,好像创建了2个itemRenderers,即使该列表是假设的在开始时是空的。

任何想法这个itemRenderer有什么问题吗?如何从空的dataProvider开始并顺利添加项目?

2 个答案:

答案 0 :(得分:1)

List的dataProvider为null。您必须设置IList或ICollectionView接口的空实现,例如:

<s:List id="thelist" itemRenderer="listIR" dataProvider="new ArrayCollection()"/>

答案 1 :(得分:1)

因为没有设置list.dataProvider,所以此值最初为null。 所以null.addItem()是不可能的。

在调用addItem()之前,您应该在调试时看到实例化的Array或ArrayCollection作为dataProvider;

修复1: 由&lt;&lt; Daniel Engmann&gt;&gt;

修复2:

if(!thelist.dataProvider) thelist.dataProvider = new ArrayCollection();
thelist.dataProvider.addItem();