【发布时间】:2009-07-10 14:44:00
【问题描述】:
我有一个绑定到属性的复选框:
<mx:CheckBox label="Show All" selected="{showAll}"/>
我想在复选框被切换时触发一个事件,该事件将在更改后读取showAll 的值:
<mx:CheckBox label="Show All" selected="{showAll}" click="_list.refresh()" />
在这种情况下,_list 是一个 ArrayCollection 对象,其过滤功能依赖于 showAll 字段来选择值。
事实证明这不起作用,或者至少给人一种不工作的强烈外观(列表中的值没有改变和所有)。是否有记录的事件顺序,以便我可以发现哪些事件以哪个顺序分派,以及绑定值更改是否会在分派 click 事件时触发?或者,有人可以推荐一种更好的方法吗?
【问题讨论】:
-
你能发布更多代码吗?我认为您可能非常接近,但问题可能在于方法的一个小细节或细节。另外,我认为您可能想要使用更改事件,而不是点击事件(不过,如果没有看到您的整个系统,我真的不能说)。
-
我怀疑你是对的;更改事件听起来是正确的方法。让我试试……
-
嗯。没有。更改事件似乎没有解决问题。我在过滤器函数中设置了一个断点,在切换复选框后,我看到 showAll 属性还没有反映复选框的状态。
-
我最终使用了一个直接设置标志的更改事件;显然绑定是单向的,我不知道。
-
啊。是的。 Flex4 中的双向。但是,您可以在 AS 中创建 ChangeWatcher 对象来手动处理绑定。查看 mx.binding.utils 包。
标签: apache-flex actionscript-3 events event-handling