2009-09-16 5 views
1

J'ai des difficultés à obtenir des cases à cocher seulement les nœuds de feuille d'un arbre. Avant que quelqu'un ne le lie, j'ai vu http://www.sephiroth.it/file_detail.php?id=151# et ce n'est pas exactement ce dont j'ai besoin. Je ne veux pas d'un système de cases à cocher à 3 états incluant les branches et les feuilles.Cases à cocher seulement sur les noeuds de feuille d'arbre dans Flex

Je comprends appliquer le rendu de l'élément de case à cocher à une grille de données mais pas à un arbre.

J'utilise Flex Builder 3

Répondre

0

Disons que nous voulons mettre la case située dans l'une des colonnes de AdvancedDataGrid. J'aime utiliser HierarchicalData ou HierarchicalCollectionView comme fournisseur de données de mon DataGrid:

// TestGrid 
<mx:AdvancedDataGrid id="myADG"> 
    <mx:columns> 
     <AdvancedDataGridColumn id="col1" /> 
     <AdvancedDataGridColumn id="col2" itemRenderer="LeafCheckbox" /> 
    </mx:columns> 
</mx:AdvancedDataGrid> 



// LeafCheckBox.mxml 
<mx:Box 
    creationComplete="init(event)" 
    implements="IDropInListItemRenderer"> 
<mx:Script> 
    <![CDATA[ 

    // Internal variable for the property value. 
    private var _listData:BaseListData; 

    // Make the listData property bindable. 
    [Bindable("dataChange")] 

    // Define the getter method. 
    public function get listData():BaseListData 
    { 
     return _listData; 
    } 

    // Define the setter method, 
    public function set listData(value:BaseListData):void 
    { 
     _listData = value; 
    } 


    private function init(event:Event):void { 
     var dg:AdvancedDataGrid = this.listData.owner.parent as AdvancedDataGrid; 
     if (!dg.dataProvider.hasChildren(dg.selectedItem)) 
      this.addChild(new CheckBox()); 
    } 

    ]]> 
</mx:Script> 

</mx:Box> 

Ce devrait être la plus grande partie. Faites-moi savoir, merci!

Questions connexes