我有一个主类ClassA,它有一堆“普通”属性,这些属性是简单的数据类型,比如int、字符串等。它还有一个属性("childItems"),它是ClassB的ArrayCollection。
我使用ClassA的ArrayCollection作为AdvancedDataGrid的分层数据提供程序的源。我将childrenField设置为"childItems“。
我希望在嵌套表和饼图中显示有关ClassB对象列表的一些信息,因此我配置了一个AdvancedDataGridItemRendererProvider (columnIndex = 0,columnSpan = 0,depth = 2),并将其指向我的自定义渲染器,它是一个包含表和饼图的HBox。
为了查看正在设置的内容,我覆盖了自定义渲染器中的“set data”函数,我看到的是ArrayCollection中的每个ClassB实例都被单独传递给渲染器。
这是我的问题:我希望ClassB实例的整个ArrayCollection只传递给自定义呈现提供者一次,而不是单独传递给子列表中的每一项。如何让ADG理解整个属性应该作为数据传递给渲染器,而不是单独传递给每个条目?
顺便说一句,当我将"childItems“的数据类型从ArrayCollection改为ArrayList时,整个列表都被传递了,我可以轻松地做我想做的事情。但根据我的理解,ArrayList并不是真正应该使用的,ArrayCollection更好,至少更常见。
任何关于这方面的见解都将不胜感激。
谢谢!
发布于 2010-11-12 08:06:29
我在很大程度上坚持使用ArrayList而不是ArrayCollection作为属性数据类型。然后将整个ArrayList传递给一个渲染器,而不是ArrayCollection中的每个项目一个渲染器。
这并不是特别好,因为源数据结构是ArrayCollection,而我所有的其他列表都是ArrayCollections,但这对我很有效,我从来没有费心去寻找不同的解决方案。
https://stackoverflow.com/questions/2210405
复制