Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex Flex AdvancedDataGrid AdvancedDataGridRenderProvider childrenField ArrayCollection-关于行为的问题_Apache Flex_Advanceddatagrid_Arraycollection - Fatal编程技术网

Apache flex Flex AdvancedDataGrid AdvancedDataGridRenderProvider childrenField ArrayCollection-关于行为的问题

Apache flex Flex AdvancedDataGrid AdvancedDataGridRenderProvider childrenField ArrayCollection-关于行为的问题,apache-flex,advanceddatagrid,arraycollection,Apache Flex,Advanceddatagrid,Arraycollection,我有一个主类ClassA,它有一组“普通”属性,这些属性是简单的数据类型,如int、string等。它还有一个属性(“childItems”),是ClassB的ArrayCollection 我使用ClassA的ArrayCollection作为AdvancedDataGrid的分层数据提供程序的源。我将childrenField设置为“childItems” 我想在嵌套表和饼图中显示有关ClassB对象列表的一些信息,因此我配置了AdvancedDataGridItemRenderProvid

我有一个主类ClassA,它有一组“普通”属性,这些属性是简单的数据类型,如int、string等。它还有一个属性(“childItems”),是ClassB的ArrayCollection

我使用ClassA的ArrayCollection作为AdvancedDataGrid的分层数据提供程序的源。我将childrenField设置为“childItems”

我想在嵌套表和饼图中显示有关ClassB对象列表的一些信息,因此我配置了AdvancedDataGridItemRenderProvider(columnIndex=0,columnSpan=0,depth=2),并将其指向自定义呈现程序,该呈现程序是一个包含表和饼图的HBox

为了查看设置的内容,我覆盖了自定义渲染器中的“set data”函数,我看到的是ArrayCollection中ClassB的每个实例都分别传递给渲染器

这里是我的问题:我希望将ClassB实例的整个ArrayCollection传递给自定义renderprovider一次,而不是分别传递给子列表中的每个项。我如何让ADG理解整个属性应该作为数据传递给渲染器,而不是单独传递给每个条目

顺便说一句,当我将“childItems”的数据类型从ArrayCollection更改为ArrayList时,整个列表都会通过,我可以轻松地完成我想做的事情。但根据我的理解,ArrayList实际上不应该被使用,ArrayCollection更好,或者至少更常见

如果您对此有任何见解,我们将不胜感激


谢谢

我坚持使用ArrayList而不是ArrayCollection作为属性数据类型。然后将整个ArrayList一次性传递给一个渲染器,而不是ArrayCollection中的每个项目都传递一个渲染器


这并不是特别好,因为源数据结构是ArrayCollection,而我的所有其他列表都是ArrayCollection,但这对我来说很有效,我从来没有想过要找到不同的解决方案。

我几乎坚持使用ArrayList而不是ArrayCollection作为属性数据类型。然后将整个ArrayList一次性传递给一个渲染器,而不是ArrayCollection中的每个项目都传递一个渲染器


这并不特别好,因为源数据结构是一个ArrayCollection,而我的所有其他列表都是ArrayCollection,但这对我来说很有效,我从来没有想过要找到一个不同的解决方案。

因为您要构建一个分层列表,所以子节点是单独呈现的。如果需要子渲染器中的整个ClassB实例列表,则应重新构造数据,使ClassB数组成为ClassA对象的单个子对象;对于每个ClassA实例渲染器,您将拥有一个子渲染器,您可以在其中访问其ClassB实例的列表。由于您正在构建一个层次列表,因此子节点将分别渲染。如果需要子渲染器中的整个ClassB实例列表,则应重新构造数据,使ClassB数组成为ClassA对象的单个子对象;对于每个ClassA实例渲染器,您将拥有一个子渲染器,您可以在其中访问其ClassB实例的列表。