Flex Databound List с ItemRender - Изменение порядка сброса значений CheckBox - PullRequest
0 голосов
/ 16 июня 2009

У меня есть Flex List, привязанный к массиву данных. Моя проблема заключается в том, что, когда я переупорядочиваю Список с помощью встроенного dragMoveEnabled, значения сбрасываются до исходных значений.

Полагаю, мне нужно каким-то образом выполнить двустороннюю привязку данных, но я не знаю, как.

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

Ответы [ 2 ]

0 голосов
/ 11 ноября 2009

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>

Если вы обновите флажок, вам нужно выбрать другой элемент, прежде чем вы сможете переместить отредактированный элемент в список. Надеюсь, это поможет!

0 голосов
/ 16 июня 2009

Может быть, вы можете попробовать:

selectedField = "IsDone"
...