Apache flex Flex 4-选择和;在<;中取消选择相同的项目;s:列表>;用鼠标按下

Apache flex Flex 4-选择和;在<;中取消选择相同的项目;s:列表>;用鼠标按下,apache-flex,list,flex4,mxml,unselect,Apache Flex,List,Flex4,Mxml,Unselect,在Flex4中,我有一个带有项目呈现器的Spark列表组件。 我想通过单击列表中的一个项目来选择它,并通过单击相同的选定项目来取消选择它。就像一个开/关开关 “我的项目”渲染器具有以下状态: <s:states> <s:State name="normal"/> <s:State name="hovered"/> <s:State name="selected"/> </s:states> } 举止笨拙。。。即使在选定状态下再次单击项

在Flex4中,我有一个带有项目呈现器的Spark列表组件。 我想通过单击列表中的一个项目来选择它,并通过单击相同的选定项目来取消选择它。就像一个开/关开关

“我的项目”渲染器具有以下状态:

<s:states>
<s:State name="normal"/>
<s:State name="hovered"/>
<s:State name="selected"/>
</s:states>
}

举止笨拙。。。即使在选定状态下再次单击项目,项目仍保持选定状态


考虑在不使用命令(在mac上)或windows上的控制按钮的情况下使用列表组件。

与其让项目渲染器设置其状态,不如对列表本身进行操作。单击项目呈现器时,让其分派包含项目呈现器数据的事件,然后为该事件添加侦听器(在扩展列表的组件中,或在包含列表的组件中)。然后,您可以检查数据是否与列表中的任何SelectedItem匹配。如果没有,请将项目附加到selectedItems。如果是,请将其从selectedItems中删除。希望这能有所帮助。

与其让项目渲染器设置其状态,不如对列表本身进行操作。单击项目呈现器时,让其分派包含项目呈现器数据的事件,然后为该事件添加侦听器(在扩展列表的组件中,或在包含列表的组件中)。然后,您可以检查数据是否与列表中的任何SelectedItem匹配。如果没有,请将项目附加到selectedItems。如果是,请将其从selectedItems中删除。希望对您有所帮助。

此博客文章可能对您有用:

此博客文章可能对您有用:

是否可以向基础数据提供程序添加一个属性,以指示是否选择了该项?类似于:public var isSelected:Boolean=true?是否可以向基础数据提供程序添加一个属性,以指示该项是否被选中?类似于:public-var-isSelected:Boolean=true?
private function selectUnSelect():void {
if (currentState == 'selected') currentState = 'normal';
else currentState = 'selected';