我将spark列表定义为:
<s:List id="symbolList" dataProvider="{symbolListCollection}" change="symbolNameChangeHandler(event)"></s:List>
使用如下定义的更改处理程序:
protected function symbolNameChangeHandler(event:IndexChangeEvent):void {
symbolList.validateProperties();
changeSymbolView(symbolList.selectedItem);
}
和symbolListCollection作为一个填充了字符串的ArrayList。
首先,改变事件正常,我得到了我期望的结果。
但是,如果我按住Ctrl键并单击所选项目,要取消选择它,我将无法再次选择项目。
当我点击某些内容尝试选择它时,更改事件会触发,但是,ItemChangeEvent将oldIndex和newIndex都设置为-1
知道我可能做了什么导致这种情况,或者我可以做些什么来补救它?
答案 0 :(得分:0)
确定找到了我自己的问题。
在方法changeSymbolView()中,我有以下一行:
if(selectedItem == null) {
symbolList.selectedItem = null;
}
不知何故,这条线阻止它再次被选中。删除它导致它按预期工作。