2009-06-16 8 views
0

J'ai une liste Flex qui est databound à un tableau. Mon problème est que lorsque je réorganiser la liste en utilisant le dragMoveEnabled intégré, les valeurs sont réinitialisées aux valeurs d'origine.Liste Flex Databound avec ItemRender - Réorganisation réinitialise les valeurs CheckBox

Je suppose que je dois faire une liaison de données bidirectionnelle mais je ne sais pas comment.

<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(); 

Répondre

0

Peut-être que vous pouvez essayer:

selectedField = "IsDone" 
0

itemRenderer, par lui-même, ne fait que rendre les données. Voici ce que je trouve des œuvres:

<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> 

Si vous mettez à jour une case à cocher, vous devez sélectionner un autre élément avant de pouvoir déplacer l'élément modifié dans la liste. J'espère que cela pourra aider!

Questions connexes