Насколько я знаю, выбор элементов обрабатывается одним списком, поэтому я бы сказал, что вы можете управлять этим оттуда. Я хотел бы иметь поле для объектов, которые находятся в списке, с именем «выбираемый» или что-то в этом роде, и когда элемент списка меняется, проверьте, действительно ли новый элемент можно выбрать, а если нет, то вы можете его иметь очистить выбор или сбросить предыдущий выбор. Это можно сделать, отреагировав на событие «change» в компоненте списка и вызвав «warnDefault» в IndexChangeEvent следующим образом:
protected function myList_changingHandler(event:IndexChangeEvent):void {
var newItem:MyObject = myList.dataProvider.getItemAt(event.newIndex) as MyObject;
if(!newItem.selectable) {
event.preventDefault();
}
}
// Jumping ahead ...
<s:List id="myList" changing="myList_changingHandler(event)" // ... continue implementation
Соответствующая часть класса MyObject выглядит следующим образом:
public class MyObject {
private var _selectable:Boolean;
public function MyObject(){
}
public function set selectable(value:Boolean):void {
_selectable = value;
}
public function get selectable():Boolean {
return _selectable;
}
}