2012-03-07 53 views
0

我已經創建了項目渲染器(IListItemRenderer)來自定義數據網格的顯示,並且我重寫了數據獲取器/設置器以傳入相關變量。到現在爲止還挺好。如何在Flex中將數據傳遞給ClassFactory生成的實例?

在項目渲染器中,我有一個按鈕,單擊它時應顯示填充了上述變量的各個字段的表單。要做到這一點,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()語句需要處於預初始化事件處理程序中,但此時尚未設置該變量。在創建IFactory實例後(例如,在單擊事件中)設置我的IFactory實例的屬性似乎不起作用。

我應該如何將我的變量傳遞給我的ClassFactory生成的實例,以便它正確地填充表單?

回答

0

在類重寫Button(問題中的PopUpButton)中使用惰性實例化來創建dropdownFactory(問題中的MyPanel),我能夠在creationComplete事件中調用instantiateDropdown而不是預初始化,這允許PopUpButton使用正確的屬性(問題中的_myVariable)進行初始化。

相關問題