Как использовать привязку данных с s:GridItemRenderer и анонимными объектами?

У меня есть пользовательский s:GridItemRenderer, который содержит один s:CheckBox и используется для отображения логического свойства элементов в сетке dataProvider, которое зависит от того, какой dataField был установлен для столбца:

<s:GridItemRenderer>
    <s:CheckBox selected="{this.data[this.column.dataField]}"/>
</s:GridItemRenderer>

Я не могу (или, скорее: я не хочу) жестко кодировать свойство, так как я хочу, чтобы средство визуализации было как можно более общим, а жесткое кодирование имени свойства потребовало бы от меня написания как минимум двух идентичных средств визуализации.

Теперь проблема в том, что dataProvider содержит только анонимные объекты (например, {foo:"blah", bar:"blubb", isBaz:true}), а привязка данных не работает с поиском по хешу. Поскольку имя свойства не фиксированное, а также динамическое, я не могу использовать точечный синтаксис для доступа к свойству объектов.

Я уже искал в Интернете возможное решение, но не нашел ни одного работающего. Я попытался использовать mx:ObjectProxy в качестве оболочки для элемента данных как предлагается здесь, но это не сработало. Я попытался вручную создать привязку с помощью mx:BindingUtils.bindProperty() как предлагается здесь, но это тоже не работал.

Есть ли способ добиться привязки данных в этой ситуации?


person Community    schedule 11.05.2012    source источник


Ответы (1)


Во время некоторого рефакторинга структура dataProvider изменилась, и мне пришлось написать конкретную itemRenderers для каждой сетки данных, поэтому общий подход больше не поддерживается, и проблема в основном решилась сама собой. :)

person Community    schedule 18.10.2012