Что эквивалентно этому Flex MX-коду в Spark? - PullRequest
2 голосов
/ 03 марта 2011

Что эквивалентно встроенному элементу флажка itemRenderer в spark?

<mx:AdvancedDataGridColumn headerText="Eliminar" dataField="eliminar"  width="100" textAlign="center">
                    <mx:itemRenderer>
                        <fx:Component>
                            <mx:HBox horizontalAlign="center">
                            <mx:CheckBox id="chkEliminar" change="{data.eliminar = chkEliminar.selected}" selected="{data.eliminar}"/>
                            </mx:HBox>
                        </fx:Component>                     
                    </mx:itemRenderer>
                        </mx:AdvancedDataGridColumn>

Ответы [ 3 ]

3 голосов
/ 03 марта 2011

Встроенные itemRenderers работают так же, как и в Halo.

Spark имеет свой собственный компонент CheckBox <s:CheckBox>, который вы можете использовать, но вы также можете продолжать использовать Halo CheckBox <mx:CheckBox>, который есть в вашем примере.

2 голосов
/ 03 марта 2011

Оба других ответа здесь хороши для этого случая, где есть только один подпункт, но если вы хотите, чтобы у itemrenderer был макет наподобие HBox, вам нужно указать его вручную:

<s:itemRenderer>
  <fx:Component>
    <s:itemRenderer>
       <s:layout>
         <s:HorizontalLayout horizontalAlign="center"/>
       </s:layout>
       <mx:CheckBox id="chkEliminar" change="{data.eliminar = chkEliminar.selected}" selected="{data.eliminar}"/>
     </s:itemRenderer>
   </fx:Component>                     
 </s:itemRenderer>
2 голосов
/ 03 марта 2011

+ 1 для ответа Джейсона

Inline itemRenderers work the same in spark as they did in Halo

Я добавлю, что если вы хотите использовать Spark Components в рендере, то вам нужно либо реализовать интерфейс IDataRenderer, либо использовать класс itemRenderer. Подробнее здесь .Я бы переписал ваш существующий itemRenderer следующим образом: Spark:

<fx:Component>
<s:ItemRenderer>
 <s:CheckBox id="chkEliminar" change="{data.eliminar = chkEliminar.selected}" selected="{data.eliminar}"/>
</s:ItemRenderer>
</fx:Component>   

На данный момент я игнорирую тот факт, что связывание в itemRenderer считается плохой практикой, и вам действительно следует использовать событие dataChange дляизменить выбранные значения.

...