2012-03-21 10 views
1

データプロバイダが ドロップダウンリストの変更後にSelectedItemが呼び出されない場合があります。 このような変更が発生したかどうかを検出する方法はありますか?ドロップダウンリストのdataProviderChangeイベントはありますか?

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

protected function dropDownListChangeHandler(event:IndexChangeEvent) : void 
{ 
//DO SOMETHING 
} 
+2

「SelectedItem」が呼び出されていないとはどういう意味ですか?詳しく教えてください。コード、またははるかに良い説明を提供し、私たちはあなたを助けることができます。 –

+0

selectedIndexセッターは常に呼び出され、-1に設定されます。リストのコンポーネントは、常にこのようなもので少しバグがありました。 (しかし、もう一度、dataProviderのsetterを呼び出す必要があります) –

答えて

1

ちょうど約Flexのフレームワーク内のすべてのパブリックプロパティは、その「にPropertyChanged」イベントがあります。 おかげ

0

あなたは以下のコードによって示され、IndexChangeEventてDropDownListコントロール内のSelectedItemの変化を聞くことができますプロパティセットメソッドから送出されます。これらは主に結合目的で使用されますが、通常正式には文書化されていません。

DropDownListのdataProviderセットメソッドは、実際にdataProviderChangedイベントを送出します。このコードは、SkinnableDataContainerの一部として階層内の複数のレイヤーになっています。または、「SkinnableDataContainer」のスキンにdataGroupがある場合は、DataGroupから送出されます。

しかし、このイベントは、おそらくMXMLのコードヒントでは公開されません。あなたは、ActionScriptでそれをリッスンする必要があります:

myList.addEventListener('dataProviderChanged', onDataProviderChanged); 

は関係なく、selectedItemプロパティに何が起こるかの、ときのdataProviderの変更このイベントは常に送出されます覚えておいてください。

関連する問題