flex 4树控件未更新



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

例如

  • +文件夹1
  • +文件夹2
  • +文件夹3

最初,当用户展开文件夹1时,文件夹1的子项是空的ArrayCollection。从后端提取文件夹1的数据并将其添加到子项ArrayColletion中。但这不会显示文件夹1下的子项。如果我关闭文件夹1并再次打开它,它就会出现。我认为当数据被添加到ArrayCollection时,它应该更新显示。有人能告诉我我可能做错了什么吗?

根据我的经验,以下内容已经通知Tree控件需要重新绘制其列表:

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

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

相关内容

  • 没有找到相关文章

最新更新