1

Mate イベント マップで 2 つのサブオブジェクトをインスタンス化するとします。

<EventMap>
...
    <ObjectBuilder generator="{SubModelA}" />
    <ObjectBuilder generator="{SubModelB}" />
...
</EventMap>

...そして、コレクション内の以前のオブジェクトを含む必要がある 1 つのメイン オブジェクト:

...
<ObjectBuilder generator="{MainModel}" />
...

Mate を使用して、作成した SubModelA および SubModelB オブジェクトをコレクションとして MainModel のプロパティに割り当てるにはどうすればよいですか?

4

1 に答える 1

1

Mate を使用して、コレクション ロジックを処理PropertyInjectorする の適切なセッターにそれらを注入する必要があります。MainModel何かのようなもの:

<ns:Injectors target="{MainModel}">
    <ns:PropertyInjector source="{SubModelA}" targetKey="updateCollection"/>
    <ns:PropertyInjector source="{SubModelB}" targetKey="updateCollection"/>
</ns:Injectors> 

もちろん、すでにupdateCollectionメソッドに追加されているモデルに対して多くのチェックを追加する必要があります。カスタム[Bindable]メタデータを使用すると、 のコレクションへのバインドもサポートされMainModelます。少し醜い (そして、実際には、依存性注入の非常に悪い使い方です) が、合理的な方法で EventMap からコレクションをインスタンス化することはできないと確信しています。もう 1 つの方法は、カスタム Mate アクションを作成することです (それほど難しいことではありません。方法のヒントについては、ソースを参照してください)。設計を簡素化することも検討してください。

于 2012-09-17T20:35:25.760 に答える