繁体   English   中英

Flex 4 Itemrenderer更新活动?

[英]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 )是ArrayCollectionXMLListCollectionListCollectionView ,它将在集合发生更改时调度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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM