так вот проблема, которая у меня до сих пор.Я пытался упростить свой код, чтобы попытаться понять это, но мне не повезло.У меня есть видовой стек, который содержит 1 раскрывающийся список на стек.У них один и тот же поставщик данных.Что я хочу сделать, это выбрать содержимое элемента из первого.Как только я это делаю, когда я нажимаю кнопку для перехода к следующему стеку, у меня появляется функция, которая выполняет поиск от индекса 0 до длины поставщика данных, и, если элемент из первого стека соответствует второму, я хочу, чтобы второй раскрывающийся список выбрал этот элемент.и показать его.У меня совпадает, и я пытаюсь выбрать его, но когда я запускаю приложение, оно появляется, как будто ничего не выбрано.Вот что у меня есть:
edit: я заставил его работать на простом примере, но когда я пытаюсь использовать его в моем более сложном примере, при нажатии этой кнопки по какой-то причине он сбрасывает значение selectedIndexдо -1.Как я могу предотвратить это?Это рабочий код для простого примера
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" applicationComplete="popList()">
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.controls.Alert;
[Bindable]
private var myList : ArrayCollection;
[Bindable]
private var selectedItem : String;
[Bindable]
private var index : int;
[Bindable]
private var ind : int;
private function popList() : void {
myList = new ArrayCollection();
stack.initialize();
myList.addItem("1");
myList.addItem("2");
myList.addItem("3");
myList.addItem("4");
myList.addItem("5");
myList.addItem("6");
first.initialize();
second.initialize();
}
private function goNext() : void {
selectedItem = first.selectedItem;
stack.selectedChild = stackb;
for(index = 0; index < myList.length; index++){
var itemNow : String = myList[index].toString();
if(selectedItem == myList[index].toString()){
ind = index;
}
}
}
]]>
</fx:Script>
<mx:ViewStack id="stack" width="862" height="500">
<s:NavigatorContent id="stacka">
<s:DropDownList x="317" y="174" id="first" dataProvider="{myList}"></s:DropDownList>
<s:Button id="next" x="335" y="263" label="Next" click="goNext()"/>
</s:NavigatorContent>
<s:NavigatorContent id="stackb">
<s:DropDownList x="317" y="174" id="second" dataProvider="{myList}" selectedIndex="{ind}"></s:DropDownList>
</s:NavigatorContent>
</mx:ViewStack>
</s:Application>