在 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 应用程序中,我正在修改选择属性的内容:
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 更新其宽度?谢谢!