1

假设我在 Mate 事件映射中实例化了两个子对象:

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

...以及一个必须包含集合中先前对象的主要对象:

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

如何使用 Mate 将创建的 SubModelA 和 SubModelB 对象作为集合分配给 MainModel 中的属性?

4

1 回答 1

1

您必须使用 MatePropertyInjector将它们注入到适当的 setter in 中MainModel,该 setter 处理收集逻辑。就像是:

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

当然,您必须在updateCollection方法中为已添加的模型添加大量检查。使用自定义[Bindable]元数据,您甚至可以支持绑定到MainModel. 这有点难看(实际上,依赖注入的使用非常糟糕),但我很确定您无法以合理的方式从 EventMap 实例化任何集合。另一种方法是创建您的自定义 Mate 操作(这并不难,请参阅来源以获取如何操作的提示)。您也可以考虑简化您的设计。

于 2012-09-17T20:35:25.760 回答