У меня есть объект, содержащий около дюжины полей, которые я хочу привязать к элементам формы, чтобы я мог использовать этот объект для отправки данных обратно на сервер для сохранения.
Определение моего объекта-контейнера:
private static const emptyLink:Object = {
id: -1, title:'',
trigger1:'',trigger2:'',trigger3:'',trigger4:'',trigger5:'',
linkTitle:'', linkBody:'',
answer1:'',answer2:'',answer3:'',answer4:'',answer5:''
};
[Bindable] public var currentLink:Object = emptyLink;
currentLink назначается во время выполнения конкретному индексу из ArrayCollection, я просто использую объект emptyLink в основном для целей инициализации.
<mx:Panel id="triggerPanel" title="Trigger" width="33%">
<mx:VBox id="tpBoxes" width="100%" paddingBottom="5" paddingLeft="5" paddingRight="5" paddingTop="5">
<mx:TextInput id="trigger1" width="100%" textAlign="left" text="{currentLink.trigger1}" />
<mx:TextInput id="trigger2" width="100%" textAlign="left" text="{currentLink.trigger2}" />
<mx:TextInput id="trigger3" width="100%" textAlign="left" text="{currentLink.trigger3}" />
<mx:TextInput id="trigger4" width="100%" textAlign="left" text="{currentLink.trigger4}" />
<mx:TextInput id="trigger5" width="100%" textAlign="left" text="{currentLink.trigger5}" />
</mx:VBox>
</mx:Panel>
Конечно, это компилируется и отображается нормально, но для каждого экземпляра есть предупреждения во время выполнения:
предупреждение: невозможно привязать к свойству 'trigger1' в классе 'Object' (класс не является IEventDispatcher) предупреждение: невозможно привязать к свойству 'trigger2' в классе 'Object' (класс не является IEventDispatcher) предупреждение: невозможно привязать к свойство «trigger3» в классе «Object» (класс не является IEventDispatcher) предупреждение: невозможно привязать к свойству «trigger4» в классе «Object» (класс не является IEventDispatcher) предупреждение: невозможно привязать к свойству «trigger5» в классе 'Object' (класс не является IEventDispatcher)
И объект currentLink не обновляется при изменении полей TextInput.
Очевидный ответ: мой объект должен быть экземпляром класса, реализующего IEventDispatcher. О чем мне не говорит этот ответ, так это об особенностях реализации этого интерфейса (что требуется? Что нет?), И если есть более простой способ сделать это - например, встроенный класс, который с радостью примет мои настраиваемые свойства и разрешит для привязки, и мне не нужно беспокоиться о деталях реализации интерфейса.
Такой класс существует? Если нет, то каков минимальный и / или принятый стандарт для выполнения этой задачи?