Как передать данные в экземпляр, сгенерированный ClassFactory во Flex? - PullRequest
0 голосов
/ 07 марта 2012

Я создал средство визуализации элементов (IListItemRenderer), чтобы настроить отображение сетки данных, и переопределяю средство получения / установки данных, чтобы передать соответствующую переменную. Пока все хорошо.

В рендере предмета у меня есть кнопка, которая при нажатии должна отображать форму, заполненную различными полями вышеупомянутой переменной. Для этого Button переопределяется, чтобы отображать, какую реализацию IFactory передали.

private function instantiateDropdown():void
{
    _dropdownFactory = new ClassFactory(MyPanel);
    _dropdownFactory.properties = {boundData: _myVariable};
}

<buttons:PopUpButton id="editButton" dropdownFactory="{_dropdownFactory}" toolTip="Edit" source="{skins.ButtonImages.Edit}" click="edit_clickHandler(event)" />

Моя реализация IFactory - это панель, содержащая мою форму, и она отображается при нажатии кнопки по желанию. Однако эта переменная не установлена. Кажется, что для создания экземпляра моей IFactory до того, как переопределенная кнопка должна получить к ней доступ, мой новый оператор ClassFactory () должен быть в обработчике события preinitialize, но переменная не была установлена ​​в то время. Установка свойств моего экземпляра IFactory после его создания (например, в событии click) не работает.

Как мне передать мою переменную в мой экземпляр, сгенерированный ClassFactory, чтобы он правильно заполнил форму?

1 Ответ

0 голосов
/ 08 марта 2012

Используя ленивое создание экземпляра для создания dropdownFactory (MyPanel в вопросе) в переопределенной кнопке класса (PopUpButton в вопросе), я смог вызвать instantiateDropdown в событии creationComplete вместо preinitialize, что позволило инициализировать PopUpButton с правильными свойствами (_myVariable в вопросе).

...