flex 4树控件不更新

时间:2012-09-07 03:20:58

标签: flex tree arraycollection

我在Flex 4.6中使用MX Tree控件。它的数据提供程序是嵌套的ArrayCollection。控件的工作方式是,当树节点被扩展时,事件被冒泡到另一个组件,该组件检测事件并从服务器获取数据并更新ArrayCollection(即被点击的分支的ArrayCollection)。但是,在关闭特定分支并再次展开之前,更新的数据不会显示在树中。

E.g。

  • + Folder 1
  • + Folder 2
  • + Folder 3

最初,当用户展开时,Folder 1 children是一个空的ArrayCollection。文件夹1从后端获取数据并添加到子ArrayCollection中。但这并没有显示文件夹1下的子项。如果我关闭文件夹1并再次打开它会显示出来。我想当数据被添加到ArrayCollection时它应该更新显示。有人可以让我知道我可能做错了吗?

2 个答案:

答案 0 :(得分:0)

根据我的经验,以下工作通知Tree控件需要重绘其列表:

  • arrayCollection.refresh();
  • tree.invalidateList();

答案 1 :(得分:0)

我找到了问题的解决方案。当更新任何子ArrayCollection类时,我需要在主ArrayCollection类上调用itemupdated。这会正确更新视图。因此,在上面的示例中,如果用户单击文件夹2,则事件将传播到将数据添加到文件夹2的children arraycollection的模型,一旦完成,我应该在我的主ArrayCollection上调用itemupdated,并将更新的项目作为Folder 2 ,这正确地更新了树视图。