1

嗨,我有一个简单的(我认为)问题。我在 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}"/>

在这个组件旁边,我的主应用程序中有另一个数据网格。这个应该填满我在自定义组件中创建的数组集合。但我不知道如何将此数组集合指定为数据网格的数据提供者。有人有想法吗?

4

1 回答 1

1

最简单的方法是在两个视图中注入一个 ArrayCollection。如果您使用像 RobotLegs 这样的 MVC 框架,那么框架将强制执行这些设计原则(除非您没有以错误的方式使用)。

实际上,我建议学习 MVC,而不要仅仅依赖 Adob​​e 的简化示例。

于 2013-01-01T19:52:07.210 回答