Глючит тем что свойства не изменяют значения кроме первых 2х. Если нажать на последний элемент дата в посл столбце не измениться. Если экспанты убрать всё нормально работает. Пробовал callLater(adgObjects.expandAll) почти не помогает глючит не на всех элементах а только на некоторых. Обнаружил на своём проекте когда подгружал дерево из сети. Как побороть?
Вот урезанный пример:

Код AS3:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
width="671" height="520" minWidth="955" minHeight="600">
<fx:Script>
<![CDATA[
import mx.collections.HierarchicalData;
import mx.events.ListEvent;
import mx.formatters.DateFormatter;
public var n1:XMLTreeNode=null;
public var n2:XMLTreeNode=null;
public var n3:XMLTreeNode=null;
public var n4:XMLTreeNode=null;
public var n5:XMLTreeNode=null;
protected function btnTest1_clickHandler(event:MouseEvent):void
{
n1 = new XMLTreeNode();
n1.label = "txt1";
myHierarchy.source = n1;
n2 = new XMLTreeNode();
n2.label = "txt2";
n1.children = new Array();
n1.children.push(n2);
adgObjects.expandAll();
n3 = new XMLTreeNode();
n3.label = "txt3";
n2.children.push(n3);
adgObjects.expandAll();
n4 = new XMLTreeNode();
n4.label = "txt3";
n1.children.push(n4);
adgObjects.expandAll();
}
protected function adgObjects_itemClickHandler(event:ListEvent):void
{
var tn:XMLTreeNode=event.currentTarget.selectedItem;
//Тестирование обновления значений
var dateS:Date = new Date();
var dateFormatter:DateFormatter = new DateFormatter();
dateFormatter.formatString = 'JJ:NN:SS DD.MM.YYYY';
tn.date = dateFormatter.format(dateS);
}
]]>
</fx:Script>
<fx:Declarations>
<!-- Разместить невизуальные элементы (например, службы или объекты значений) -->
</fx:Declarations>
<mx:AdvancedDataGrid id="adgObjects" x="32" y="29" width="485" height="458"
designViewDataType="tree" itemClick="adgObjects_itemClickHandler(event)"
variableRowHeight="true">
<mx:dataProvider>
<mx:HierarchicalData id="myHierarchy" childrenField="children"/>
</mx:dataProvider>
<mx:columns>
<mx:AdvancedDataGridColumn dataField="label" headerText="Объект"
sortable="false"/>
<mx:AdvancedDataGridColumn width="70" dataField="value"
headerText="Знач." sortable="false"/>
<mx:AdvancedDataGridColumn width="130" dataField="date" headerText="Дата"
sortable="false"/>
</mx:columns>
</mx:AdvancedDataGrid>
<s:Button id="btnTest1" x="528" y="29" width="122" height="59" label="Создать"
click="btnTest1_clickHandler(event)"/>
</s:Application>
Узел:

Код AS3:
package
{
import flash.events.EventDispatcher;
import flash.events.IEventDispatcher;
dynamic public class XMLTreeNode extends EventDispatcher
{
[Bindable]
public var selected:Boolean;
[Bindable]
public var checked :int;
[Bindable]
public var icoid:int;
[Bindable]
public var label:String;
[Bindable]
public var value:String;
[Bindable]
public var date:String;
[Bindable]
public var children:Array;
public function XMLTreeNode(target:IEventDispatcher=null)
{
super(target);
selected = false;
checked = 0;
icoid = 0;
label = "";
value = "";
date = "";
children = new Array();
}
}
}
Добавлено через 18 часов 13 минут
В качестве заглушки пришлось таймер добавить, чтоб дерево каждую секунду обновлялось.