私は、子供が作成時にセルフリフレクションでバブリングイベント(CHILD_CREATED)を送出するようにすることで、この問題を解決します。次に、有効な値のセットにアクセスできるオブジェクトのCHILD_CREATEDイベントを待ち受けます。子供が作成されたときに知っているリスナーを追加し、値
子が作成された#へのrefrence必要 - -
#1親が作成されるように、自己refrenceとCHILD_CREATEDダイナミックイベントを送出しますプロパティ
#3親が聞くCHILD_CREATED - 子コンポーネントへの参照を抽出し、そのデータプロバイダを有効な値のセットに設定します。
EDIT:
あなたがデータグループに基づいて、コンポーネントを扱っている場合にはこの種の問題を処理するための非常にクリーンな方法は、(イベントのレンダラーにrefrenceがある)rendererAddを使用することです。 これは確かにそれを処理する標準的な方法であるでしょう。
したがって、直接アクセスする必要があるコンポーネントを表示するためにデータグループを使用する場合は、rendererAddイベントを使用してください。あなたの問題にそれが当てはまらないなら、私はCHILD_CREATEDメソッドを使うでしょう。
これは一般的なケースでは機能しません。なぜなら、コンポーネントがデータを必要とする場合、動的に作成されたコンポーネントのツリー全体に必要な情報を基本的に渡す必要があるからです。 Haempの答えは、クライアントが必要なデータを親に尋ねることを可能にするメカニズムを提供します。 FWIW、私の初期の素朴な解決策は、私がデータを知っていたクラスを探して封じ込めツリーを歩くことでした。それはすばやく汚れていて、仕事をしていて、どんな優雅さも欠いています。それはカプセル化をひどく破る。 –
ファクトリを作成すると、要素を包含ツリーの下に引き渡す必要はなく、カプセル化を破ることもありません。NavigatorContentへの参照を含むCreationManagerシングルトンを作成し、CreationMananager.instance.getComboBoxFactory()。createComboBox()どこにでも必要な場所です。表示リストに依存しないでも、NavigatorContentにどの種類の子を扱うかを知る必要はありません。それは一般的にどのように機能しませんか? – weltraumpirat
あなたはまさに正しいです。ありがとう! –