gpt4 book ai didi

apache-flex - 我可以将事件监听器添加到 Flex 中的数据绑定(bind)操作吗?

转载 作者:行者123 更新时间:2023-12-04 07:12:44 25 4
gpt4 key购买 nike

我有一个绑定(bind)到标准 HTTPService 的 ComboBox,我想添加一个事件监听器,以便在从数据提供程序填充 ComboBox 后运行一些代码。

我怎样才能做到这一点?

最佳答案

Flex 没有像 ASP .Net 那样的特定数据绑定(bind)事件。您必须像 John 在第一个答案中所说的那样注意 dataProvider 属性,而不仅仅是注意组合框或其 dataProvider 属性。假设您有这样的设置:

<!-- Assume you have extracted an XMLList out of the result 
and attached it to the collection -->
<mx:HttpService id="svc" result="col.source = event.result.Project"/>
<mx:XMLListCollection id="col"/>

<mx:ComboBox id="cbProject" dataProvider="{col}"/>

现在,如果你像这样设置一个 changewatcher:
// Strategy 1
ChangeWatcher.watch(cbProject, "dataProvider", handler) ;

当数据返回时,您的处理程序不会被触发。为什么?因为 dataProvider 本身没有改变——它的底层集合做了。要触发它,您必须这样做:
// Strategy 2
ChangeWatcher.watch(cbProject, ["dataProvider", "source"], handler) ;

现在,当您的集合更新时,您的处理程序将被触发。如果您想使用策略 1 使其工作,请不要在 MXML 中设置您的 dataProvider。相反,处理 XMLListCollection 的 collectionChange 事件,并在 AS 中覆盖 ComboBox 的 dataProvider。

这些与数据绑定(bind)事件完全相同吗?不,但我用过它们,从来没有遇到过问题。如果您想绝对确定您的数据已绑定(bind),只需在组合框的 selectedItem 属性上放置一个 changeWatcher 并在那里进行处理。只需准备好多次触发该事件并适当处理即可。

关于apache-flex - 我可以将事件监听器添加到 Flex 中的数据绑定(bind)操作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com