我遇到了一个问题,我的子元素在图表中与其自身一起移动,其中它有多个不同级别的父元素。这有点奇怪,我认为这可能是为了说明它是同一个元素,但它在我的数据网格中看起来很奇怪,有时它会从网格中分离出来!
编辑:我知道这是因为我使用的是同一个对象,但我想在两个位置使用同一个对象,这样当我单击任何一个时,我都会得到相同的 dg.selectedItem。我正在寻找一种方法来防止在两个对象而不是一个对象上发生树内移动(如果可能),而不是使用不同的对象。
我已将其简化为这段代码以说明问题:
<?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 后:
有没有办法防止这种情况?