1

HierarchicalData dataProviderを備えたAdvancedDataGrid(ADG)があります。

<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}"/>

モデルにHierarchicalDataインスタンスを最初に設定すると、期待どおりに表示されます。

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

    __model.myHierarchicalData.source = parentItems;
}

parentItemsは、ParentItemvalueObjectsのコレクションです。

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

        public var label:String;
    }
}

ただし、子アイテムをある親から別の親に(ドラッグアンドドロップで)移動すると、次のコードを使用して更新が表示されません。

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

ただし、何らかの理由で、これは機能します。

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

ArrayCollectionのソースを更新する必要があるのはなぜですか?

4

3 に答える 3

1

これを参照してください。ArrayCollectionを扱うときは、常にbindable を使用することをお勧めしますdataProviders

于 2009-02-26T20:11:51.873 に答える
0

試す

IHierarchicalCollectionView(__model.myHierarchicalData).refresh();
于 2010-07-20T17:57:58.427 に答える