2009-06-05 9 views
0

コンボボックスが1つあり、ActionScriptを使用してデータプロバイダをoldDataProviderからnewDataProviderに切り替えるとします。どちらのデータプロバイダもArrayCollectionsです。次に、ArrayCollectionの変更がコンボボックスに反映されますが、それはもはやデータプロバイダではありません。具体的には、oldDataProvider(値がnewDataProviderの範囲)からアイテムを削除すると、コンボボックスの値が1つ減り、選択したアイテムが変更されます。データプロバイダの切り替え(Flex 2.0)

このようなデータプロバイダを切り替えるのは良い方法ですか?私はこれが問題の根源だと思う。または、データプロバイダを1つだけ持ち、それに応じて値を調整する方がよいでしょうか?

答えて

2

実際にはComboBoxコンポーネントのバグであり、Flex 3にはまだ存在します.Adobeのバグ追跡データベースに登録する必要があります。ここ は問題を解決する必要があり、拡張ComboBoxクラスである:

package test 
{ 
import mx.controls.ComboBox; 
import mx.events.CollectionEvent; 

public class FixedComboBox extends ComboBox 
{ 
    public function FixedComboBox() 
    { 
     super(); 
    } 

    override public function set dataProvider(value:Object):void 
    { 
     if (collection) 
      collection.removeEventListener(CollectionEvent.COLLECTION_CHANGE, collectionChangeHandler); 
     super.dataProvider = value; 
    } 

} 
} 
+0

それが必要として、今では動作しますが、おかげでたくさん。私はバグとしても報告しました。 – atas

関連する問題