Флажки только на узлах листьев дерева во Flex
-
07-07-2019 - |
Вопрос
У меня возникают проблемы с установкой флажков только на листовых узлах дерева.
Прежде чем кто-либо связывает его, я видел 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>
Это должно быть большая часть. Дайте мне знать, спасибо!
Не связан с StackOverflow