2010-05-23 5 views
1

Я использую flex SDK 3.5. У меня есть model.as, и в нем у меня есть ArrayCollection (name it arr_mod), который является Bindable. Из моего mxml i ссылка на этот arr_mod в трех местах:
1) в DataGrid i set dataprovider = {arr_mode} ...
2) в Button я добавляю новый элемент в arr_mod таким образом: mx: Button .. нажмите = "{arr_mod.addItem (новый предмет)}"привязка к arraycollection не работает


3) в TextBox я хочу добавить тх: TextBox текст = "{mySpecialCounterFunc (arr_mod)}" к сведению, что в сценарии MXML arr_mod является Bindable а также в определении класса в model.as

Проблема в том, что при нажатии на кнопку mySpecialCounterFunc не вызывается! он должен быть вызван, так как я использую {}, и это должно прослушивать изменения в arr_mod (изменение, которое было сделано в кнопке, должно приводить к добавлению нового элемента .. и ответа слушателя).
Хотя DataGrid обновлен правильно!
Кстати, если я меняю arr_mod на простое String или Int, это работает. Т.е. mySpecialCounterFunc называется
Почему?

+0

Потому что вы не приняли никаких ответов, поэтому никто здесь не хочет помочь вам решить ваши проблемы. – Robusto

+0

почему ты так говоришь ??? – ronk

ответ

1

Я знаю, что иногда я испытывал странное поведение, связанное с ArrayCollection. Когда что-то не работает, я обычно отказываюсь от использования привязки MXML для размещения непосредственного прослушивателя событий для CollectionEvent.COLLECTION_CHANGE и выполнения того, что я хочу сделать в обработчике событий. Я считаю, что связывание MXML - это просто синтаксический сахар для этого в любом случае.