В Flex 3 я создал ComboBox в компоненте MXML, подобном следующему:
<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 достаточно широка, чтобы показать начальный элемент «Все», объявленный в компоненте. Однако я хочу и ожидал, что ComboBox автоматически изменит размеры во время привязки, чтобы иметь возможность отображать «California», но это не так.
Как заставить ComboBox обновлять свою ширину после добавления новых более широких меток в свой dataProvider? Спасибо!