1

int、string などの単純なデータ型である「通常の」プロパティの束を持つメイン クラス ClassA があります。また、ClassB の ArrayCollection である 1 つのプロパティ (「childItems」) もあります。

AdvancedDataGrid の階層データ プロバイダーのソースとして ClassA の ArrayCollection を使用しています。childrenField を「childItems」に設定しました。

ネストされたテーブルと円グラフで ClassB オブジェクトのリストに関する情報を表示したいので、AdvancedDataGridItemRendererProvider (columnIndex = 0、columnSpan = 0、深さ = 2) を構成し、それを HBox であるカスタム レンダラーにポイントします。表とその中の円グラフ。

何が設定されているかを確認するために、カスタム レンダラーで「データの設定」関数をオーバーライドすると、ArrayCollection 内の ClassB の各インスタンスが個別にレンダラーに渡されることがわかります。

これが私の質問です。ClassB インスタンスの ArrayCollection 全体がカスタム renderprovider に 1 回渡され、子リストの各項目が個別に渡されることはないと予想していました。各エントリを個別にではなく、プロパティ全体がデータとしてレンダラーに渡されることになっていることを ADG に理解させるにはどうすればよいですか?

ところで、「childItems」のデータ型を ArrayCollection から ArrayList に変更すると、リスト全体が渡され、やりたいことを簡単に実行できます。しかし、私の理解に基づくと、ArrayList は実際には使用されるべきではなく、ArrayCollection の方が優れているか、少なくともより一般的です。

それについての洞察をいただければ幸いです。

ありがとう!

4

1 に答える 1

1

プロパティのデータ型として ArrayCollection の代わりに ArrayList を使用することにかなり固執しました。次に、ArrayCollection 内の項目ごとに 1 つのレンダラーではなく、ArrayList 全体が 1 つのレンダラーに 1 回渡されます。

ソース データ構造は ArrayCollection であり、他のすべてのリストは ArrayCollections であるため、これは特に良いことではありませんが、それでうまくいき、別の解決策を見つけようとはしませんでした。

于 2010-11-12T08:06:28.850 に答える