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

最も簡単な方法は、両方のビューに1つのArrayCollectionを挿入することです。RobotLegsのようなMVCフレームワークを使用する場合、それらの設計原則はフレームワークによって適用されます(間違った方法で使用しない限り)。

実際、私はMVCについて学ぶことをお勧めします。アドビの単純化されたサンプルだけに頼るのではなく、

于 2013-01-01T19:52:07.210 に答える