0

我使用标签组件来显示 ArrayCollection 的长度。当我向集合中添加新项目时,如何更新它?

这是标签的文本字段:

text="{model.meetingInfo.documentList.length}"

这是将新项目添加到集合的处理程序:

var attachmentProgressVO:AttachmentProgressVO = new AttachmentProgressVO();
                attachmentProgressVO.fileReference = file as File;
                newAttachmentList.addItem(attachmentProgressVO);
                checkIfUpdate(file as File, attachmentProgressVO);
                meetingInfo.docsAndAttachmentsList.addItem(attachmentProgressVO);

我尝试添加这两行,但没有奏效:

meetingInfo.docsAndAttachmentsList.itemUpdated( attachmentProgressVO );
                meetingInfo.docsAndAttachmentsList.refresh();

我也试过改变这个:

public var docsAndAttachmentsList:ArrayCollection = new ArrayCollection();

对此:

private var _docsAndAttachmentsList:ArrayCollection = new ArrayCollection();

..使用吸气剂和二传手,但这不起作用。

我没有使用正确的方法,是吗?

4

1 回答 1

1

通常,Binding 只查看特定对象。您不能将 4 个对象深入到特定属性并期望绑定来更新值。

更改 documentList 不会更改 meetingInfo 或 Model,因此永远不会触发绑定。itemUpdated() 和 refresh() 应该更新显示数据的基于列表的类;但不会影响您的标签显示计数。

您需要在集合上侦听 collectionChange 事件并在 collectionChange 处理程序中手动更新标签的文本。

于 2012-11-05T16:12:42.783 回答