【发布时间】:2010-04-01 08:30:42
【问题描述】:
<mx:Label text="{(item1 as INewsItem).displayName}"/>
对于 Flex 中的上述代码,我收到以下警告:
:数据绑定将无法检测到 item1 的分配。
为什么?如何解决?
【问题讨论】:
<mx:Label text="{(item1 as INewsItem).displayName}"/>
对于 Flex 中的上述代码,我收到以下警告:
:数据绑定将无法检测到 item1 的分配。
为什么?如何解决?
【问题讨论】:
如果您定义[Bindable] function get item1(),您还需要定义function set item1(),否则Flex 将不知道何时调度更改事件。或者您可以手动调度更改事件:
[Bindable(event="item1Change"]
public function get item1() { return ... }
并且每当 item1 上的某些内容发生更改时,您都会发送一个事件:
dispatchEvent(new Event("item1Change"));
【讨论】:
显示警告是因为更新item1 时不会自动刷新数据绑定。如果您确实想要这种行为,那么您不能使用此数据绑定,并且必须在 item1 更改时手动更新标签文本。
【讨论】:
感谢 Prutswonder。
实际上 item1 被声明为 getter,
像这样:
public function get item1()
所以,我不得不像这样添加它:
[Bindable] public function get item1()
【讨论】: