Frage

Ich habe ein Advanced (ADG) mit einem HierarchicalData Datenprovider:

<mx:AdvancedDataGrid xmlns:mx="http://www.adobe.com/2006/mxml"
    dataProvider="{__model.myHierarchicalData}" 
    displayItemsExpanded="true" sortExpertMode="true" dropEnabled="true" 
    sortableColumns="false" draggableColumns="false" 
    resizableColumns="true" textAlign="left" defaultLeafIcon="{null}" 
    folderOpenIcon="{null}" folderClosedIcon="{null}"/>

Als ich anfangs die HierarchicalData Instanz im Modell festgelegt, es wird angezeigt, wie erwartet:

function buildHierarchicalData(parentItems:ArrayCollection):void
{
    __model.myHierarchicalData = new HierarchicalData();

    __model.myHierarchicalData.source = parentItems;
}

parentItems ist eine Sammlung von ParentItem valueobjects:

package
{
    [Bindable]
    public class ParentItem
    {
        public var children:ArrayCollection;

        public var label:String;
    }
}

Allerdings, wenn ich untergeordneten Elemente von einem Elternteil zum anderen (per Drag-and-Drop) bewegen, das Update nicht sichtbar ist, mit diesem Code:

function moveChildren(movedChildren:Array /* of ParentItem */):void
{
    parentItem.children = new ArrayCollection(movedChildren);
}

Aus irgendeinem Grund jedoch Dies funktioniert:

function moveChildren(movedChildren:Array /* of ParentItem */):void
{
    parentItem.children.source = movedChildren;
}

Warum muss ich die Quelle der Arraycollection aktualisieren ???

War es hilfreich?

Lösung

Dank dirkgently für mich auf die Antwort zu lenken. Ich bin jetzt die Notwendigkeit einer HierarchicalData Eigenschaft in meinem Modell zu beseitigen und stattdessen die hierarchischen Datenprovider direkt im MXML-Einstellung:

<mx:AdvancedDataGrid xmlns:mx="http://www.adobe.com/2006/mxml">
    <mx:dataProvider>
        <mx:HierarchicalData source="{__model.parentItems}" />
    </mx:dataProvider>
</mx:AdvancedDataGrid>

Andere Tipps

Siehe dieses . Es wird empfohlen, immer ein bindungsfähigen ArrayCollection zu verwenden, wenn mit dataProviders handelt.

Versuchen

IHierarchicalCollectionView(__model.myHierarchicalData).refresh();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top