У меня есть компонент, где я разоблачить собственности «вопросы» со следующим кодом:Почему изменение длины ArrayCollection не вызывает Setter на компоненте, используя его в качестве источника данных?
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 'questions' изменяется в другом месте приложения, он не вызывает метод setter в компоненте, который является местом назначения привязки данных.
Может ли кто-нибудь помочь мне понять, почему это так?
Исправьте меня, если я ошибаюсь, но не должен синтаксис тегов Bindable метаданных быть `[Bindable (event =" questionsChanged ") ] `? – bedwyr 2010-12-15 18:45:33