Also, I've tracked down the location where the dataprovider changes. It is HierarchicalCollectionView:812 => children.source = parentNode.*;
--- In [email protected], "Steve Ashton" <[EMAIL PROTECTED]> wrote: > > > I've got a tree which, as it's dataprovider, uses a child of an xml > document. When I add a new node as a child of the tree's dataprovider, > the dataprovider is reassigned and becomes an XMLList containing all the > siblings of the original dataprovider. It works as expected in Flex > 2.0.1 Hotfix 3. I see the error using Flex Builder 3. > > Does anyone know if I am accessing/updating the xml in an incorrect way? > Or is this a bug that needs to be logged? > > > > <?xml version="1.0" encoding="utf-8"?> > <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" > > <mx:Button label="Load DP" click="addDP()" /> > <mx:Button label="Add Node" click="addNode()" /> > <mx:Tree id="tree" dataProvider="{foo}" labelField="@label" > width="300" height="300" /> > > <mx:Script><![CDATA[ > import mx.collections.XMLListCollection; > private var rootXML:XML= > <Node label='Root'> > <Node label='Foo' /> > <Node label='Bar' /> > <Node label='Baz' /> > </Node>; > > // Use this function to execute the databinding on the tree > private function addDP():void { > dispatchEvent(new Event('dpLoaded')); > } > > [Bindable("dpLoaded")] > private function get foo():XMLListCollection { > return new XMLListCollection( new XMLList( rootXML.child(0) > ) ); > } > > > private function addNode():void { > var dp:XMLListCollection = > XMLListCollection(tree.dataProvider); > var root:XML = dp.getItemAt( 0 ) as XML; > var coll:XMLListCollection = new XMLListCollection( > root.children() ); > coll.addItem( <Node label='New Node' /> ); > } > ]]></mx:Script> > > </mx:Application> >

