我有一个Flex List,它可以数据绑定到一个数组。我的问题是,当我使用内置的dragMoveEnabled重新排序List时,值将重置为原始值。
我假设我需要以某种方式进行双向数据绑定,但我不确定如何。
<mx:List width="100%" top="20" id="uiItemList" dragMoveEnabled="true" bottom="0"
dragEnabled="true" dropEnabled="true"
dataProvider="{listArray}" >
<mx:itemRenderer>
<mx:Component>
<mx:HBox width="100%" height="25" >
<mx:CheckBox id="uiCheck" textAlign="center" selected="{data.IsDone}" mouseDown="event.stopImmediatePropagation();" />
</mx:HBox>
</mx:Component>
</mx:itemRenderer>
</mx:List>
[Bindable]
public var listArray : ArrayCollection = new ArrayCollection ();
答案 0 :(得分:0)
也许你可以试试:
selectedField = "IsDone"
答案 1 :(得分:0)
itemRenderer本身只呈现数据。这是我发现的作品:
<mx:ArrayCollection id="listArray">
<mx:Array>
<mx:Object label="Item One" checked="false" />
<mx:Object label="Item Two" checked="true" />
</mx:Array>
</mx:ArrayCollection>
<mx:List dataProvider="{listArray}" dragEnabled="true" dragMoveEnabled="true" dropEnabled="true" editable="true" rendererIsEditor="true" editorDataField="data">
<mx:itemRenderer>
<mx:Component>
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
private var _data:Object;
[Bindable]
override public function set data(value:Object):void {
_data = value;
}
override public function get data():Object {
return _data;
}
]]>
</mx:Script>
<mx:CheckBox selected="{data.checked}" />
<mx:Label text="{data.label}" />
</mx:HBox>
</mx:Component>
</mx:itemRenderer>
</mx:List>
如果更新复选框,则需要先选择其他项目,然后才能重新定位列表中的已编辑项目。希望有所帮助!