I would directly add items to the dataprovider. The dataProvider wraps raw
objects with its own methods and event dispatchers. Like this:

var newNode:XML = <item label='Middle' isBranch="true"></item>;
xmlBound2Tree.dataProvider.addItemAt(newNode, 1);


This article may be of help to you.

http://livedocs.macromedia.com/flex/201/html/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Book_Parts&file=about_dataproviders_057_16.html

You may need to name your nodes the same name, give yourself a label
function that takes that into account and may need to enable the XML e4x
format.

On 1/21/07, dorkie dork from dorktown <[EMAIL PROTECTED]>
wrote:

They explain it better than I do. :P
http://livedocs.macromedia.com/flex/2/docs/00000499.html

Search on the page for "raw data object"

Remember the race??? ;)

On 1/21/07, dorkie dork from dorktown <[EMAIL PROTECTED] >
wrote:
>
> The XMLListCollection has a special design interfaces that allow it to
> be used correctly with databinding. The XML object does not. Remember how
> you use MyList.addItem(myItem) instead of myArray.push(myItem)? This is
> because addItem inspects data and dispatches events. It is the same thing
> with the XML object.
>
> Array is used if data is static. ArrayCollection is used if data will
> change.
> XML is used if data is static. XMLCollection is used if data will
> change.
>
> The general rule is, if data will change, data binding is used, or you
> need to filter or sort the data put your array or xml into collections
> before binding or putting into dataproviders.
>
> HTH
>
>
> On 1/21/07, Andriy Panas < [EMAIL PROTECTED]> wrote:
> >
> > Hello flexcoders,
> >
> >   I ran into 2 different behaviors dependant on the type of binded
> > data
> > source (XML or XMLListCollection) to mx:Tree's dataProvider.
> >
> >   Behavior #1
> >   ----------
> >   If I bind the data of XML type to dataProvider's mx:Tree the
> > whenever I add the new node to XML
> > data source at the runtime then Tree's view DOES NOT update
> > automatically.
> >
> >   Behavior #2
> >   ----------
> >   If I bind the data of XMLListCollection type to dataProvider's
> > mx:Tree the whenever I add the new node to XML
> > data source at the runtime then Tree's view DOES update automatically.
> >
> >   Studying the source code of XML, XMLListCollection did not reveal to
> > me why does this situation happen.
> >
> >   Any thoughts? I would appreciate any opinions on this issue to get a
> >
> > better understanding of Flex 2 UI framework.
> >
> > --Code example START--
> > <?xml version="1.0" encoding="utf-8"?>
> > <mx:Application xmlns:mx=" http://www.adobe.com/2006/mxml";
> > width="100%" verticalAlign="left">
> > <mx:Script>
> >         <![CDATA[
> >                 import mx.collections.XMLListCollection;
> >
> >
> >                 [Bindable]
> >                 var employeesXML : XML = <list>
> >                         <department label="TV Station">
> >                                 <employee label="John"/>
> >                                 <employee label="Bruce"/>
> >                         </department>
> >                         <department label="Radio Station">
> >                                 <employee label="Gerald"/>
> >                         </department >
> >                         <employee label="George"/>
> >                 </list>;
> >
> >                 [Bindable]
> >                 var employeesData : XMLListCollection = new
> > XMLListCollection( employeesXML.department );
> >
> >                 function addNewItem() : void {
> >                         var newNode : XML = <employee label="Jim"/>;
> >                         employeesXML.appendChild(newNode);
> >                          employeesData.addItem(newNode);
> >                         employeesTextXML1.text =
> > employeesXML.toXMLString();
> >                         employeesTextXML2.text =
> > employeesData.toXMLString();
> >
> >                 }
> >
> >         ]]>
> > </mx:Script>
> >         <mx:HBox width="100%">
> >                 <mx:Tree id="employees1" showRoot="false"
> > dataProvider="{employeesXML}" width="50%" labelField="@label">
> >                 </mx:Tree>
> >                 <mx:Tree id="employees2"
> > dataProvider="{employeesData}" width="50%" labelField="@label">
> >                 </mx:Tree>
> >         </mx:HBox>
> >         <mx:Button label="addItem" click="addNewItem()"/>
> >         <mx:HBox width="100%">
> >                 <mx:TextArea id="employeesTextXML1" height="200"
> > width="300"/>
> >                 <mx:TextArea id="employeesTextXML2" height="200"
> > width="300"/>
> >         </mx:HBox>
> > </mx:Application>
> > --Code example END--
> >
> > --
> > Best regards,
> > Andriy                          mailto:[EMAIL PROTECTED]
> >
> >
> >
> > --
> > Flexcoders Mailing List
> > FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
> > Search Archives:
> > http://www.mail-archive.com/flexcoders%40yahoogroups.com
> > Yahoo! Groups Links
> >
> >
> >
> >
>

Reply via email to