嗨,我有一个简单的(我认为)问题。我在Flex 4.6中有以下自定义组件(部分代码)。
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
<s:ArrayCollection id="acItems"/>
<s:ArrayCollection id="acOrder" source="{orderItems.source}"/>
</fx:Declarations>
<fx:Script>
<![CDATA[
[Bindable]
public var orderItems:ArrayCollection = new ArrayCollection();
private function addToOrder():void
{
orderItems.addItem(itemGrid.selectedItem);
}
]]>
</fx:Script>
<mx:AdvancedDataGrid id="itemGrid" dataProvider="{acItems}" width="100%" height="100%" borderVisible="false" click="addToOrder()">
<mx:columns>
<mx:AdvancedDataGridColumn width="200" dataField="omschrijving" headerText="omschrijving"/>
<mx:AdvancedDataGridColumn dataField="prijs" headerText="prijs"/>
</mx:columns>
</mx:AdvancedDataGrid>
所以每当我点击一个项目时,都会被添加到一个数组集合中。
现在我在主应用程序中调用此组件。它充满了数据库中的数据。这一切都正常,所以我不认为代码是解决我的问题所必需的:)
<components:Items acItems="{acItems}"/>
在这个组件旁边,我的主应用程序中有另一个数据网格。这个应该填充我在自定义组件中创建的arraycollection。但我不知道如何将此arraycollection指定为datagrid的数据提供者。有想法的人吗?
答案 0 :(得分:1)
最简单的方法是在两个视图中注入一个ArrayCollection。如果您使用像RobotLegs这样的MVC框架,那么这些设计原则将由框架强制执行(除非您不以错误的方式使用)。
实际上我建议学习MVC,而不仅仅依赖Adobe的简化样本。