Flex AdvancedDataGrid AdvancedDataGridRendererProvider childrenField ArrayCollection - Вопрос о поведении - PullRequest
1 голос
/ 06 февраля 2010

У меня есть основной класс ClassA, у которого есть куча "обычных" свойств, которые являются простым типом данных, таких как int, строки и т. Д. Он также имеет одно свойство ("childItems"), которое представляет собой ArrayCollection ClassB.

Я использую ArrayCollection ClassA в качестве источника для поставщика иерархических данных для AdvancedDataGrid. Я установил для childrenField значение childItems.

Я хочу отобразить некоторую информацию о списке объектов ClassB во вложенной таблице и круговой диаграмме, поэтому я настраиваю AdvancedDataGridItemRendererProvider (columnIndex = 0, columnSpan = 0, deep = 2) и указываю его на свой пользовательский рендер, который HBox с таблицей и круговой диаграммой.

Чтобы увидеть, что задается, я переопределяю функцию «set data» в моем пользовательском рендерере, и я вижу, что каждый экземпляр ClassB в ArrayCollection передается рендереру отдельно.

Вот мой вопрос: я ожидал, что вся коллекция ArrayCollection экземпляров ClassB будет передана в пользовательский renderprovider один раз, а не каждый элемент в дочернем списке по отдельности. Как заставить ADG понять, что все свойство должно передаваться в качестве данных для средства визуализации, а не для каждой записи отдельно?

Кстати, когда я меняю тип данных childItems с ArrayCollection на ArrayList, весь список передается, и я легко могу делать то, что хочу. Но исходя из моего понимания, ArrayList на самом деле не должен использоваться, и ArrayCollection лучше или, по крайней мере, более распространен.

Любые идеи по этому вопросу будут оценены.

Спасибо!

1 Ответ

1 голос
/ 12 ноября 2010

Я в основном придерживался ArrayList вместо ArrayCollection в качестве типа данных свойства. Затем весь ArrayList передается один раз одному рендереру вместо одного рендера на элемент в ArrayCollection.

Это не особенно хорошо, поскольку исходная структура данных - это ArrayCollection, а все остальные мои списки - ArrayCollections, но это сработало, и я никогда не пытался найти другое решение для этого.

...