0

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()

そのような状況でデータバインディングを実現する方法はありますか?

4

1 に答える 1

0

いくつかのリファクタリング中に構造が変更され、データグリッドごとにdataProvider固有のものを記述する必要があったため、一般的なアプローチはサポートされなくなり、問題は基本的に解決されました。itemRenderers:)

于 2012-10-18T09:40:10.010 に答える