2010-03-20 4 views
3

Flex 녀석을위한 질문. 트리의 항목의 깊이/레벨에 따라 mx : Tree에서 여러 항목 렌더러를 사용할 수 있습니까? 예를 들면. 첫 번째 수준 항목에 대해 단추와 레이블을 사용하고 두 번째 수준 항목에 대해 combobox를 사용하고 싶습니다.mx : Tree에서 2 가지 다른 아이템 렌더러를 사용하는 방법

어떻게 든 가능합니까?

답변

2

해결책 : 확장 된 트리에서 함수 getItemRendererFactory (data : Object) : IFactory를 재정의하고 적절한 itemRenderer를 선택하는 데 필요한 논리를 작성합니다. 이 다른 사람에게 또한

1

조건부 논리는 단일 item 렌더러에서 구현되어야합니다. 여러 렌더러를 설정할 수 없습니다. 여기

이 구현 될 수있는 방법 receipe입니다 : http://cookbooks.adobe.com/post_How_do_I_create_a_Tree_itemRenderer_-62.html 문을 보여줍니다 '가'당신이 내부 노드 여부가 있다면 그건

override public function set data(value:Object):void 
     { 
      if(value != null) 
      { 
       super.data = value; 
       if(TreeListData(super.listData).hasChildren) 
       { 
        setStyle("color", 0x660099); 
        setStyle("fontWeight", 'bold'); 
     } 
     else 
     { 
      setStyle("color", 0x000000); 
      setStyle("fontWeight", 'normal'); 
     } 
      } 
     } 

. 또한 데이터 공급자를 생성 할 때 추가 속성을 지정할 수 있습니다.

+0

감사합니다 도움이 될 것입니다

희망, 나는이 개 확장 클래스와 주요의 itemRenderer를 구현 오버라이드 (override) 기능 세트 데이터 스위칭 않습니다. 하지만 노드 깊이를 어떻게 결정합니까? – luccio

+0

그냥 몇 가지 문제에서 실행 ... 집합 데이터()에서 이렇게 할려고 해요 : if (depth == 1) { itemRenderer = itemRendererOne; } else { itemRenderer = itemRendererTwo; } 하지만 전체 트리에서 itemRenderer를 변경합니다. 특정 항목에 대해서만 전환 할 수 있습니까? – luccio

관련 문제