如何收集由 ObjectBuilder 标记创建的对象,并将其作为集合分配给 Flex 4 Mate 框架中的另一个对象



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

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

。还有一个主对象,它必须包含集合中的先前对象:

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

如何使用 Mate 将创建的子模型 A 和子模型 B 对象作为集合分配给 MainModel 中的属性?

你必须

使用 Mate PropertyInjector将它们注入到 MainModel 中的适当 setter 中,该 setter 处理集合逻辑。像这样:

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

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

相关内容

  • 没有找到相关文章

最新更新