2011-03-03 4 views
2

sparkのインラインitemRendererチェックボックス要素と同等のものは何ですか?SparkのこのFlex MXコードに相当するものは何ですか?

<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

インラインitemRenderersは、Haloと同じように動作します。

スパークは、独自のCheckBoxコンポーネント<s:CheckBox>あなたはでし使用を持っていますが、あなたはまた、あなたがあなたの例では持っているヘイローのCheckBox <mx:CheckBox>を継続して使用することができます。ジェイソンの答え

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

私はあなたがレンダラでSparkコンポーネントを使用したい場合は、あなたのいずれかがIDataRendererインターフェイスを実装したりするitemRendererクラスを使用する必要があることを追加するための

+1

事私がスパークチェックボックスを使用する場合、私が使用する "データ"プロパティはもはや有効ではありません。 – overmann

+0

@overmann、これは本当です。私は、あなたがインラインのitemRenderersを使用する必要がある場合、Halo CheckBoxに固執します。それ以外の場合は、実際のItemRendererコンポーネントを作成します。詳細については、http://help.adobe.com/jp/flex/using/WS03d33b8076db57b9-23c04461124bbeca597-8000.htmlを参照してください。 –

+0

+!あなたの答えの最初の行のために。 "インラインのitemRenderersは、Haloと同じように動作します。" SparkコンポーネントをMXコンポーネントのレンダラーとして使用する場合は、これについてもう少し詳しくお答えください。 – JeffryHouser

2

+1。 More info here

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

瞬間のために、私は行為を無視してることのitemRendererに結合が悪い習慣をconsderedされていることを、あなたが本当に変更するdataChangeイベントを使用する必要があります。これはスパークするように私はあなたの既存のitemRendererを書き換えます選択された値。

+0

@Flextras、好奇心のため、なぜitemRendererのバインディングが悪い習慣と考えられていますか?ただ奇妙ではない。 –

+0

@ Jason Towneパフォーマンスに影響を与えることは知られています。バインドは高価な操作です。私はそれがバインディングの仕方と、MXMLがActionScriptにどのように変換されるかということに関係していると思います。 Flextras AutoCompleteでは、例えば、クライアントのitemRenderersをバインディングを使用しないように書き直すことで、ほとんどの「メモリリーク」の問題を修正しました。 – JeffryHouser

+0

@Flextrasお役立ち情報情報をありがとう。 –

2

ここでは他の回答の両方が一つだけ下位項目があります。この場合、のために良いですが、あなたは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> 
+0

HBoxがなぜ1つの子コンポーネントしか持っていないのなら、なぜそれを使うのですか?それは過労です。 – JeffryHouser

+0

@ www.Flextras.comコードに追加を開始すると、これはハローコンポーネントと同じように動作します。レイアウトがなければ、レンダラーはHBoxとは異なる何かを意味します。 –