Flex 3 では、次のような MXML コンポーネント内に ComboBox を作成しました。
<mx:ComboBox id="comboBox" dataProvider="{_choices}" />
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
// etc...
public function get choices():ArrayCollection { return _choices; }
[Bindable]
private var _choices:ArrayCollection =
new ArrayCollection( [ { data: "ALL", label: "All" } ] );
// etc...
]]>
</mx:Script>
</mx:HBox>
親 MXML アプリケーションで、choices プロパティの内容を変更しています。
myComponentId.choices.removeAll();
myComponentId.choices.addItem({data: "NY", label: "New York"});
myComponentId.choices.addItem({data: "CA", label: "California"});
// etc...
バインディングは、ComboBox が実行時に追加された新しいコンテンツを自動的に取得するという点で機能していますが、その幅は調整されていません。ComboBox の最初の幅は、コンポーネントで宣言された最初の項目 "All" のみを表示するのに十分な幅です。ただし、「カリフォルニア」を表示できるように、バインド中に ComboBox のサイズが自動的に変更されることを期待していましたが、そうではありません。
dataProvider に幅の広い新しいラベルを追加した後、ComboBox の幅を更新するにはどうすればよいですか? ありがとうございました!