我有一个组件,我在其中使用以下代码公开属性“问题”:
private var _questions:ArrayCollection;
private var questionsChanged:Boolean;
[Bindable("questionsChanged")]
public function get questions():ArrayCollection {
return _questions;
}
public function set questions(value:ArrayCollection):void {
if (_questions != value) {
_questions = value;
questionsChanged = true;
invalidateProperties();
dispatchEvent(new Event("questionsChanged"));
}
}
在这个组件中,我使用 commitProperties() 来实现我的逻辑。
我使用 Cairngorm 并且“问题”在模型中,因此它被定义为数据绑定的源。
当“问题”ArrayCollection 的大小在应用程序的其他地方发生变化时,它不会调用作为数据绑定目标的组件中的 setter 方法。
有人可以帮我理解为什么会这样吗?