Вопрос

У меня возникают проблемы с установкой флажков только на листовых узлах дерева.

Прежде чем кто-либо связывает его, я видел http: //www.sephiroth .it / file_detail.php? id = 151 # и это не совсем то, что мне нужно. Мне не нужна система с 3 состояниями, включающая как ветку, так и лист.

Я понимаю, как применять средство визуализации элементов-флажков к сетке данных, но не к дереву.

Я использую Flex Builder 3

Это было полезно?

Решение

Допустим, мы хотим поставить флажок в одном из столбцов AdvancedDataGrid. Мне нравится использовать HierarchicalData или HierarchicalCollectionView в качестве dataProvider моей таблицы данных:

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

Это должно быть большая часть. Дайте мне знать, спасибо!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top