異なるレベルに複数の親があるチャートで、子要素がそれ自体と一緒に移動するという問題があります。これはちょっと奇妙なことで、同じ要素であることを示すための機能であると思いますが、データグリッドでは見落とされ、グリッドから切り離されることがあります。
編集:これは同じオブジェクトを使用しているためですが、両方の場所で同じオブジェクトを使用したいので、どちらかをクリックすると同じdg.selectedItemが表示されます。異なるオブジェクトを使用せずに、ツリー内の移動が1つではなく両方のオブジェクトで発生しないようにする方法を探しています(可能な場合)。
問題を説明するために、このコードに簡略化しました。
<?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" minWidth="955" minHeight="600"
creationComplete="init()">
<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
[Bindable] var ac:ArrayCollection;
public function init():void
{
ac = new ArrayCollection();
var objWithMultipleParents:Object = {name:"Awkward family tree"};
ac.addItem({
name:"Parent 1",
children:[
objWithMultipleParents,
{name:"Child of Parent 1"}
]
});
ac.addItem({
name:"Parent 2",
children:[
{name:"Child of Parent 2",children:[objWithMultipleParents]},
{name:"Child #2 of Parent 2"}
]
});
}
]]>
</fx:Script>
<mx:AdvancedDataGrid id="dg" width="100%" height="100%">
<mx:dataProvider>
<mx:HierarchicalData source="{ac}" />
</mx:dataProvider>
<mx:columns>
<mx:AdvancedDataGridColumn dataField="name" headerText="Groups"/>
</mx:columns>
</mx:AdvancedDataGrid>
</s:Application>
親2の子1を拡張する前:
親2の子1を拡張した後:
これを防ぐ方法はありますか?