...Flexのコンボボックスは、デフォルト値とのDataProvider
0のインデックスは、私はこれを行うことができ、まだdataproviderを使用することができますか?私はそのような例は見ていませんが、これは難しいとは想像できません。
...Flexのコンボボックスは、デフォルト値とのDataProvider
0のインデックスは、私はこれを行うことができ、まだdataproviderを使用することができますか?私はそのような例は見ていませんが、これは難しいとは想像できません。
デフォルトアイテムを選択する必要がない場合は、というプロパティを使用し、selectedIndex
を-1に設定することができます。これは、ユーザーが別の値を選択するまで、選択した値としてpropmt
を設定した文字列を表示します。ただし、オプションのリストには表示されません。
これまで私がこれを扱ったのは、新しいコレクションを作成して、コンボボックスを開き、元のソースへの変更を聞きます(mx.BindingUtils.ChangeWatcher
を使用)。そのような通知を受け取ると、私はカスタムデータプロバイダを再作成します。
私はこれにアプローチするより良い方法を知りたがっています。私はちょうどこの質問を監視します。
今日この問題を遭遇し、解決策を共有したいと考えました。
私は、オブジェクトをデータプロバイダとして持つArrayCollectionを持つComboBoxを持っています。アプリケーションが実行されると、RemoteObjectを使用してArrayCollection/Objectsを取得します。その呼び出しのための私のイベントハンドラでは、私はちょうどそれがのArrayCollectionの先頭に別のオブジェクトを追加し、それを選択します:
var defaultOption:Object = {MyLabelField: "Select One"};
myDataProvider.addItemAt(defaultOption, 0);
myComboBox.selectedIndex = 0;
これは私のコンボボックスは、参考のために次のようになります。
<mx:ComboBox id="myComboBox" dataProvider="{myDataProvider}" labelField="MyLabelField" />
これはできますコンボボックスの選択されたデフォルト値のコードに続いて使用されます
var index:String = "foo";
for(var objIndex:int = 0; objIndex < comboBox.dataProvider.length; objIndex++) {
if(comboBox.dataProvider[objIndex].label == index)
{
comboBox.selectedIndex = objIndex;
break;
}
}
<mx:ComboBox id="comboBox" dataProvider="{_pageIndexArray}" />
これはまだSpark DropDownListで動作します - ありがとう – danjp