1

我正在使用 flex SDK 3.5。我有model.as,其中有一个可绑定的ArrayCollection(命名为arr_mod)。从我的 mxml 我在三个地方链接到这个 arr_mod:
1)在 DataGrid 中我设置 dataprovider={arr_mode} ...
2)在 Button 中我以这种方式将新项目添加到 arr_mod:mx:Button .. click = "{arr_mod .addItem(新项目)}"


3)在 textBox 我想添加 mx:TextBox text="{mySpecialCounterFunc(arr_mod)}" 请注意,在 mxml arr_mod 的脚本中以及在 model.as 中的类定义中是 Bindable

问题是,当点击按钮时,mySpecialCounterFunc 没有被调用!它应该被调用,因为我使用 {} 并且它应该监听 arr_mod 中的更改(在按钮中所做的更改应该会导致添加一个新项目......而不是监听器响应)。
虽然 DataGrid 已正确更新!
顺便说一句,如果我将 arr_mod 更改为简单的 String 或 Int 它可以工作.. 即 mySpecialCounterFunc 被称为
为什么?

4

1 回答 1

1

我知道我有时会遇到绑定到 ArrayCollection 的奇怪行为。当某些事情不起作用时,我通常会从使用 MXML 绑定切换到为 CollectionEvent.COLLECTION_CHANGE 放置一个直接事件侦听器,并在该事件处理程序中执行我想要执行的操作。我相信 MXML 绑定无论如何只是语法糖。

于 2010-05-23T21:42:44.683 回答