我在Flex 4.6中使用MX Tree控件。它的数据提供程序是嵌套的ArrayCollection。控件的工作方式是,当树节点被扩展时,事件被冒泡到另一个组件,该组件检测事件并从服务器获取数据并更新ArrayCollection(即被点击的分支的ArrayCollection)。但是,在关闭特定分支并再次展开之前,更新的数据不会显示在树中。
E.g。
最初,当用户展开时,Folder 1 children是一个空的ArrayCollection。文件夹1从后端获取数据并添加到子ArrayCollection中。但这并没有显示文件夹1下的子项。如果我关闭文件夹1并再次打开它会显示出来。我想当数据被添加到ArrayCollection时它应该更新显示。有人可以让我知道我可能做错了吗?
答案 0 :(得分:0)
根据我的经验,以下工作通知Tree控件需要重绘其列表:
答案 1 :(得分:0)
我找到了问题的解决方案。当更新任何子ArrayCollection类时,我需要在主ArrayCollection类上调用itemupdated。这会正确更新视图。因此,在上面的示例中,如果用户单击文件夹2,则事件将传播到将数据添加到文件夹2的children arraycollection的模型,一旦完成,我应该在我的主ArrayCollection上调用itemupdated,并将更新的项目作为Folder 2 ,这正确地更新了树视图。