1

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

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

我想在嵌套表和饼图中显示有关 ClassB 对象列表的一些信息,因此我配置了 AdvancedDataGridItemRendererProvider (columnIndex = 0, columnSpan = 0, depth = 2) 并将其指向我的自定义渲染器,它是一个 HBox表格和其中的饼图。

为了查看正在设置什么,我在自定义渲染器中覆盖了“设置数据”函数,我看到的是 ArrayCollection 中的每个 ClassB 实例都分别传递给渲染器。

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

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

对此的任何见解将不胜感激。

谢谢!

4

1 回答 1

1

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

这不是特别好,因为源数据结构是一个 ArrayCollection,而我所有的其他列表都是 ArrayCollections,但这对我有用,我从来没有费心为此寻找不同的解决方案。

于 2010-11-12T08:06:28.850 回答