Вызовите метод дочерней группы данных - PullRequest
0 голосов
/ 02 мая 2011

Я ищу способ вызова метода для ВСЕХ дочерних элементов DataGroup из DataGroup. Проблема заключается в том, что при использовании события creationComplete для вызова метода дочернего объекта этот метод вызывается только один раз для каждого объекта itemrenderer (дочернего). после того, как предмет был нарисован один раз.

Теперь я хочу, чтобы дочерний компонент вызывал функцию каждый раз, когда группа данных, содержащая ее, изменяет свои данные. Использование «updateComplete» или «dataChange» внутри дочернего (itemrenderer) компонента будет работать, НО «updateComplete» и «dataChange» вызываются каждый раз, когда я меняю представление (например, прокручиваю мой список) - это не то, что я хочу.

// edit Я также попытался получить детей, пройдя через массив parent.dataprovider и массив parent.getchild, но безуспешно, это говорит о том, что элементы равны нулю, но когда я проверяю в режиме отладки, это не так. тем не менее, в любом случае должен быть более легкий путь.

1 Ответ

0 голосов
/ 03 мая 2011

Похоже, вы неправильно понимаете, как работает DataGroup.

DataGroup принимает свойство dataProvider; и этот dataProvider будет реализовывать интерфейс iList. Распространенными dataProviders могут быть ArrayCollection или XMLListCollection.

Ради этого объяснения давайте предположим, что в dataProvider есть 100 элементов.

DataGroup собирается посмотреть, сколько визуального пространства у него для отображения элементов; и создайте столько экземпляров itemRenderer. Для того же из этого объяснения, скажем, есть 7 элементов, отображаемых в DataGroup.

Таким образом, в этой ситуации DataGroup имеет семь дочерних элементов, хотя dataProvider содержит 100 элементов.

При прокрутке группы данных каждый визуализатор используется повторно. В DataGroup никогда не бывает более семи детей.

DataGroup не имеет свойства data , поэтому запуск кода для DataGroup всякий раз, когда изменяются данные, немного сбивает с толку. Вы должны иметь возможность запускать код каждый раз, когда DataProvider DataGroup изменяется, либо расширяя и переопределяя метод set dataProvider, либо добавляя обработчик события в событие dataProviderChanged. Все привязываемые свойства запускают одноименное событие, даже если они явно не задокументированы.

Это помогает? Если нет, возможно, вам нужно рассказать нам, что вы хотите сделать, в более конкретном плане.

...