Хорошо, я немного покопался, и вот что случилось.
Привязки в MXML, вопреки причине, устанавливаются кодом Java (modules/compiler/src/java/flex2/compiler/as3/binding/DataBindingFirstPassEvaluator.java
, если я не ошибаюсь) во время компиляции.
Например, привязка: first_item="{myArrayCollection.getItemAt(0)
} "` расширена, в частности, до:
// writeWatcher id=0 shouldWriteSelf=true class=flex2.compiler.as3.binding.PropertyWatcher shouldWriteChildren=true
watchers[0] = new mx.binding.PropertyWatcher("foo",
{ propertyChange: true }, // writeWatcherListeners id=0 size=1
[ bindings[0] ],
propertyGetter);
// writeWatcher id=1 shouldWriteSelf=true class=flex2.compiler.as3.binding.FunctionReturnWatcher shouldWriteChildren=true
watchers[1] = new mx.binding.FunctionReturnWatcher("getItemAt",
target,
function():Array { return [ 0 ]; },
{ collectionChange: true },
[bindings[0]],
null);
// writeWatcherBottom id=0 shouldWriteSelf=true class=flex2.compiler.as3.binding.PropertyWatcher
watchers[0].updateParent(target);
// writeWatcherBottom id=1 shouldWriteSelf=true class=flex2.compiler.as3.binding.FunctionReturnWatcher
// writeEvaluationWatcherPart 1 0 parentWatcher
watchers[1].parentWatcher = watchers[0];
watchers[0].addChild(watchers[1]);
Это означает, что просто невозможно настроить привязки в виде фигурных скобок в стиле MXML во время выполнения, поскольку код для этого не существует в ActionScript.