[英]Flex 4 Itemrenderer Update Event?
我的Flex 4.6项目中有一个<s:List>
,它使用了itemrenderer。 我的应用程序偶尔将更多项目推送到此<s:List>
,并且itemrenderer按预期获取并应用此更改。 我的列表看起来像这样:
<s:List borderVisible="false" contentBackgroundAlpha="0"
dataProvider="{this.data.root.item}" id="reviews"
itemRenderer="renderers.pages.ReviewRenderer" minHeight="1"
top="10" width="100%">
<s:layout>
<s:VerticalLayout gap="35" requestedMinRowCount="1" useVirtualLayout="false/>
</s:layout>
</s:List>
...我将更多数据附加到数据提供程序对象上,如下所示:
this.data.root.item.addItem(this.form.reviewData);
我想知道每当addItem()
方法将更多数据推送到对象上以便显示<s:List>
,是否有可以监听的事件。
我知道我可以使用FlexEvent.VALUE_COMMIT
事件,但是,根据文档,这将在数据首次应用于列表时进行调度,并且任何项目用户与列表的交互都会更新其中一个属性(例如选择其中一个属性)列表项目)。
所以,为了清楚起见,我正在寻找只有在addItem()
将数据附加到数据提供者时才调度的事件。
注意:我对Web项目使用<s:List>
组件,而不是移动优化版本。
感谢您的时间。
如果列表中的dataProvider
(示例中为this.data.root.item
)是ArrayCollection
, XMLListCollection
或ListCollectionView
,它将在集合发生更改时调度CollectionEvent.COLLECTION_CHANGE
。
CollectionEvent有一个需要检查的kind
属性,因为有各种更改(请参阅CollectionEventKind类)。 特别是,您可能对CollectionEventKind.ADD
感兴趣。
另一种方法是覆盖dataProvider的addItem()
方法并调度自己的“itemAdded”事件:
override public function addItem(item:Object):void
{
super.addItem(item);
dispatchEvent(new Event("itemAdded"));
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.