パッケージmx.controls.listClasses
インターフェイスpublic interface IDropInListItemRenderer
インプリメンタButton, ComboBox, DataGridItemRenderer, DateField, Image, Label, ListBase, ListItemRenderer, MenuItemRenderer, NumericStepper, TextArea, TextInput, TileListItemRenderer, TreeItemRenderer

"ドロップイン" アイテムレンダラーのインターフェイスです。大半の IListItemRenderer は "ドロップイン" アイテムレンダラーではありません。それらは、データプロバイダアイテムの特定のフィールドを使用することを想定しています。たとえば、これらのレンダラーで、アイテムの "lastName" プロパティを Label の text プロパティに割り当てることがあります。この場合、データバインディングを使用して記述するのは容易なことです。しかし、それでは DataGrid の他の列や、異なるフィールドを持つ他の List では、このレンダラーを再使用できないという問題が出てきます。IDropInListItemRenderer を使用するとレンダラーを再使用できます。リストクラスからレンダラーに渡される情報量が増加するので、実行時に使用するフィールドをレンダラー側で判断できるようになります。

ドロップインアイテムレンダラーまたはドロップインアイテムエディタとして使用するコンポーネントは、IDropInListItemRenderer インターフェイスを実装する必要があります。多くの Flex コンポーネントはこのインターフェイスを実装しているので、あらゆる列やリストでドロップインアイテムレンダラーおよびドロップインアイテムエディタとして使用できます。

さらに、ドロップインアイテムレンダラーまたはドロップインアイテムエディタは、data プロパティを定義するために IDataRenderer インターフェイスもまた実装する必要があります。

ドロップインアイテムレンダラーまたはドロップインアイテムエディタとして使用すると、このコンポーネントの listData プロパティが、リストコントロールからの該当するデータで初期化されます。その後、コンポーネントでこの listData プロパティを使用して、ドロップインアイテムレンダラーまたはドロップインアイテムエディタの data プロパティを初期化できます。

listData プロパティのタイプは BaseListData で、BaseListData クラスには、DataGridListData、ListData、TreeListData の 3 つのサブクラスがあります。listData プロパティの値の実際のデータ型は、ドロップインアイテムレンダラーまたはアイテムエディタを使用しているコントロールに応じて異なります。DataGrid コントロールの場合、値のタイプは DataGridListData で、List コントロールの場合は ListData です。また Tree コントロールの場合は TreeListData です。

次の例は、NumericStepper コントロールの data プロパティ用の setter メソッドを示しています。これは、listData プロパティの値に基づいて NumericStepper の value プロパティを初期化します。

    public function set data(value:Object):void
    {
      _data = value;
    
      this.value = _listData ? parseFloat(_listData.label) : Number(_data);
    
      dispatchEvent(new FlexEvent(FlexEvent.DATA_CHANGE));
    }
  

上記の例では、NumericStepper コントロールは NumericStepper の value プロパティの設定時に data プロパティを無視して、代わりに listData プロパティを使用します。

IDropInListItemRenderer インターフェイスを実装するには、listData プロパティを実装する setter および getter メソッドを定義します。普通、setter メソッドでは listData プロパティの値を内部変数に書き込みます。リストクラスは常に、このプロパティを割り当てた後、data プロパティでデータプロバイダアイテムを設定します。

listData プロパティの setter メソッドでは、イベントは送出されません。リストクラスは常に、listData を設定した後、data プロパティを設定するためです。data プロパティが設定されると、dataChange イベントも送出されます。listData を単独で設定することはないため、独自のイベントを送出する必要はありません。

更新のためにコントロールが必要な何らかの操作をした場合、data setter メソッドは invalidateProperties() メソッドを呼び出すことができます。その後コンポーネントの開発者は、commitProperties() メソッドを記述して listData が変更されていることを判別し、適切に処理します。

getter メソッドは、次の例で示すように、内部変数の現在の値を返します。

    // Internal variable for the property value.
    private var _listData:BaseListData;
    
    // Make the listData property bindable.
    [Bindable("dataChange")]
    
    // Define the getter method.
    public function get listData():BaseListData
    {
      return _listData;
    }
    
    // Define the setter method,
    public function set listData(value:BaseListData):void
    {
      _listData = value;
    }
  

関連項目

mx.controls.listClasses.BaseListData
mx.core.IDataRenderer


パブリックプロパティ
 プロパティ定義
  listData : BaseListData
setter メソッドおよび getter メソッドを使用して listData プロパティを実装します。
IDropInListItemRenderer
プロパティの詳細
listDataプロパティ
listData:BaseListData  [read-write]

setter メソッドおよび getter メソッドを使用して listData プロパティを実装します。

実装
    public function get listData():BaseListData
    public function set listData(value:BaseListData):void