У меня есть объект, который содержит дюжину или около того полей, которые я хочу связать с элементами формы, чтобы я мог использовать этот объект для отправки данных обратно на сервер для сохранения.
Определение моего контейнерного объекта:
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
. Что этот ответ не говорит мне, это особенности реализации этого интерфейса (что требуется? Что нет?), И если есть более простой способ сделать это - например, встроенный класс, который с радостью примет мои пользовательские свойства и позволит для связывания, без необходимости беспокоиться о деталях реализации интерфейса.
Существует ли такой класс? Если нет, каков минимальный и / или принятый стандарт для выполнения этой задачи?