2012-03-21 36 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 
} 
相关问题