2012-03-21 55 views
1

我有一種情況,在數據提供者更改爲 下拉列表後,未調用SelectedItem。 有沒有辦法檢測這種變化是否發生? 感謝是否存在dropdownlist的dataProviderChange事件?

+2

你是什麼意思'SelectedItem'沒有被調用?請詳細說明。提供代碼或更好的解釋,我們可以幫助你。 – 2012-03-21 14:21:41

+0

selectedIndex設置器應該始終被調用並設置爲-1。列表組件一直有點bug。 (但是,再次,dataProvider設置器也應該被調用) – 2012-03-21 22:26:21

回答

1

只是在Flex框架的每個公共財產擁有「的PropertyChanged」事件從屬性集方法派發。它們主要用於約束目的,但通常沒有正式記錄。

DropDownList的dataProvider set方法確實調度了一個dataProviderChanged事件。該代碼是層次結構中的多個層,作爲SkinnableDataContainer的一部分,或者如果「SkinnableDataContainer」的外觀具有從DataGroup派發的dataGroup。

但是,這個事件可能不會通過代碼提示暴露在MXML中。你必須在ActionScript來聽吧:

myList.addEventListener('dataProviderChanged', onDataProviderChanged); 

記住這個事件總是會出動當數據提供程序的變化,無論發生什麼情況selectedItem屬性。

0

你可以通過IndexChangeEvent聽在DropDownList中的selectedItem屬性的變化,通過下面的代碼所示:

<s:DropDownList id="dl_mydl" 
    dataProvider="{dataProvider}" 
    change="dropDownListChangeHandler(event)" 
/> 

protected function dropDownListChangeHandler(event:IndexChangeEvent) : void 
{ 
//DO SOMETHING 
} 
相關問題