1

안녕하세요. 간단한 질문이 있습니다. Flex 4.6 (부분 코드)에는 다음과 같은 사용자 지정 구성 요소가 있습니다.주 앱의 DataGrid에 대해 dataprovider로 arraycollection을 할당합니다.

<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> 

그래서 항목을 클릭 할 때마다 arraycollection에 추가됩니다.

이제 주 응용 프로그램에서이 구성 요소를 호출합니다. 데이터베이스의 데이터로 채워집니다. 이것은 모든 그래서 코드가

<components:Items acItems="{acItems}"/> 

그리고이 구성 요소 옆에, 나는 내 주요 응용 프로그램에서 다른 데이터 그리드가 내 문제를 :) 해결하는 데 필요한 것 같아요 잘 작동이다. 이 하나는 사용자 지정 구성 요소에서 만든 arraycollection으로 채워야합니다. 그러나 나는이 arraycollection을 DataGrid의 dataprovider로 할당하는 방법을 생각하지 않습니다. 아이디어가있는 누군가?

답변

1

가장 간단한 방법은 두보기 모두에 하나의 ArrayCollection을 주입하는 것입니다. RobotLegs와 같은 MVC 프레임 워크를 사용한다면 틀린 방식으로 사용하지 않는 한 프레임 워크에 의해 이러한 디자인 원칙이 적용됩니다.

사실 MVC에 대해 배우고 Adobe에서 단순화 된 샘플에만 의존하지 않는 것이 좋습니다.