У меня есть проблема со списками искр, из-за которой я пытаюсь убедиться, что элемент всегда выбран, и чтобы графический интерфейс отображал это пользователю.
Приложение (полный код ниже) создает список, метку и кнопку. Метка указывает, что выбрано в списке. Кнопка удаляет выбранный элемент. Изменяя выбор, обновляет текст в Ярлыке. Важно : для списка "requireSelection" установлено значение true, чтобы гарантировать, что элемент всегда выбран.
Если я выберу первый элемент в списке, выбор будет корректно отражен в метке. Нажатие «Удалить» удаляет элемент и выбирается следующий элемент. Это все работает правильно.
Если я выберу какой-либо элемент ДРУГОЕ, чем первый, а затем нажмите «Удалить», список отобразится так, как будто выбора нет. Однако метка показывает, что выбран первый элемент. Если я пытаюсь выбрать элемент 1 (нажав на него), ничего не происходит (т.е. элемент не выглядит выбранным). Если я щелкну любой другой элемент, он будет выбран правильно, и появится список, чтобы снова начать работать.
Помощь. Это ошибка или мне нужно вручную «пнуть» список? Должен ли я использовать «requireSelection» для обеспечения выбора?
Спасибо
Phil
<?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"
initialize="init()">
<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.events.FlexEvent;
private function init():void {
myList.addEventListener(FlexEvent.VALUE_COMMIT, updateSelectionLabel);
var ac:ArrayCollection = new ArrayCollection()
ac.addItem("Adam");
ac.addItem("Bob");
ac.addItem("Charlie");
ac.addItem("Dave");
myList.dataProvider = ac;
}
private function updateSelectionLabel(event:Event):void {
selectedItemLabel.text = myList.selectedItem.toString();
}
protected function removeClicked(event:MouseEvent):void {
myList.dataProvider.removeItemAt( myList.selectedIndex );
}
]]>
</fx:Script>
<s:List id="myList" x="10" y="10" width="300" height="120"
requireSelection="true"/>
<s:Label x="10" y="140" id="selectedItemLabel" text="-selectedItem-"/>
<s:Button x="10" y="160" label="Remove Selected Item" click="removeClicked(event)"/>
</s:Application>