如何将数据传递给Flex中的ClassFactory生成的实例?

时间:2012-03-07 19:53:39

标签: flex data-binding actionscript mxml

我创建了一个项目渲染器(IListItemRenderer)来自定义数据网格的显示,并覆盖数据getter / setter以传入相关变量。到目前为止,非常好。

在项目渲染器中,我有一个按钮,单击该按钮时,应显示填充了上述变量的各个字段的表单。为此,重写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实例创建后(例如在单击事件中)设置它的属性似乎不起作用。

我应该如何将我的变量传递给ClassFactory生成的实例,以便正确填充表单?

1 个答案:

答案 0 :(得分:0)

在类重写Button(问题中的PopUpButton)中使用延迟实例化来创建dropdownFactory(问题中的MyPanel),我能够在creationComplete事件中调用instantiateDropdown而不是preinitialize,这允许PopUpButton初始化具有正确的属性(问题中_myVariable)。