Вы должны использовать объект HierarchicalData для достижения этого поведения. В чем проблема с его использованием? Вы должны быть в состоянии передать ArrayCollection в конструктор объекта HierarchicalData, затем установить его свойство childrenField и быть готовым к работе. Если вам нужно работать с исходной коллекцией массивов, вы можете либо использовать источник HierarchicalData для возврата ArrayCollection, либо вы можете сохранить отдельную ссылку на него. HierarchicalData не является тяжелым объектом и просто добавляет вещи, необходимые для представления иерархии. В нашем случае мы хотели, чтобы в строках расширения были те же данные, что и в исходной строке коллекции массивов, поэтому мы установили свойство children объекта, чтобы иметь коллекцию, содержащую только сам объект, таким образом, когда строка расширяет исходные данные передается в расширение строки. Примерно так в наших DTO / объектах Value:
public var children: ArrayCollection;
children = new ArrayCollection ([{parent: this}]);
установка для него нового объекта со свойством, для которого установлено это, работает, потому что, если вы просто передали это сам, не оборачивая объект вокруг него и не присвоив его свойству, то при расширении он будет рекурсивно пытаться расширить ребенок тоже. Затем в фактическом рендере в функции set data мы проверяем родительское свойство и устанавливаем свойство data рендерера в качестве родительского для сброшенных данных, таким образом, все может быть связано со свойством data в рендере, и все хорошо.
Дайте мне знать, если это помогает или вы пытаетесь достичь чего-то другого.