s:GridItemRenderer
シングルを含むカスタムがs:CheckBox
あり、グリッド内のアイテムのブールプロパティを表示するために使用されます。dataProvider
これは、列に設定されたdataFieldに依存します。
<s:GridItemRenderer>
<s:CheckBox selected="{this.data[this.column.dataField]}"/>
</s:GridItemRenderer>
レンダラーをできるだけ汎用的に保ちたいので、プロパティをハードコーディングすることはできません(または、したくないです)。プロパティ名をハードコーディングするには、少なくとも2つの同じレンダラーを作成する必要があります。
ここで問題となるのは、dataProviderに匿名オブジェクト(たとえば{foo:"blah", bar:"blubb", isBaz:true}
)のみが含まれ、データバインディングがハッシュルックアップで機能しないことです。プロパティ名は固定されていないだけでなく動的でもあるため、ドット構文を使用してオブジェクトのプロパティにアクセスすることはできません。
私はすでに可能な解決策をウェブで検索しましたが、うまくいくものは見つかりませんでした。ここで提案するようmx:ObjectProxy
に、データ項目のラッパーとしてを使用してみましたが、機能しませんでした。ここで提案されているように手動でバインディングを作成しようとしましたが、それも機能しませんでした。mx:BindingUtils.bindProperty()
そのような状況でデータバインディングを実現する方法はありますか?