如何使用s:GridItemRenderer和匿名对象进行数据绑定?

时间:2012-05-11 14:52:04

标签: data-binding flex4 flex-spark itemrenderer

我有一个包含单个s:GridItemRenderer的自定义s:CheckBox,用于显示网格dataProvider中项目的布尔属性,该属性取决于为其设置的dataField柱:

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

我不能(或者更确切地说:我不想)对该属性进行硬编码,因为我希望尽可能保持渲染器的通用性,并且对属性名称进行硬编码将需要我编写至少2个相同的渲染器。< / p>

现在的问题是dataProvider只包含匿名对象(例如{foo:"blah", bar:"blubb", isBaz:true}),而数据绑定不能用于哈希查找。由于属性名称不是固定的,而是动态的,我不能使用点语法来访问对象的属性。

我已经在网上搜索了一个可能的解决方案,但没有发现任何有效的方法。我尝试使用mx:ObjectProxy作为数据项as suggest here的包装,但这不起作用。我尝试使用mx:BindingUtils.bindProperty() as suggested here手动创建绑定,但这也无效。

在那种情况下有没有办法实现数据绑定?

1 个答案:

答案 0 :(得分:0)

在一些重构期间,dataProvider的结构发生了变化,我被要求为每个数据网格编写特定的itemRenderers,因此不再支持通用方法,问题基本上自行解决。 :)