| Pacote | mx.controls.listClasses |
| Interface | public interface IDropInListItemRenderer |
| Implementadores | AdvancedDataGridGroupItemRenderer, AdvancedDataGridHeaderRenderer, AdvancedDataGridItemRenderer, AdvancedListBase, Button, ComboBox, DataGridItemRenderer, DateField, HTML, Image, Label, ListBase, ListItemRenderer, MenuItemRenderer, NumericStepper, OLAPDataGridGroupRenderer, TextArea, TextInput, TileListItemRenderer, TreeItemRenderer |
text do Label. Isso é fácil de escrever usando uma atadura de dados (data-binding), mas tem a consequência negativa: o representante não pode ser re-usado em outra coluna de um DataGrid ou outro List com campos diferentes. IDropInListItemRenderer permite que um representante seja re-usado. As classes de lista passarão mais informações ao representante para que ele possa determinar que campo usar no run-time.
Componentes que você queira usar como representantes ou editores de itens drop-in devem impelementar a interface IDropInListItemRenderer. Vários componentes Flex implementam essa interface, e portanto são utilizáveis como representantes ou editores de itens drop-in em qualquer coluna ou lista.
Representantes ou editores de itens drop-in também deveriam implementar a interface IDataRenderer para definir a propriedade data.
Quando um componente é usado como representante de item drop-in ou editor de item drop-in, Flex inicializa a propriedade listData do componente com os dados apropriados do controle de lista. O componente pode então usar a propriedade listData para inicializar a propriedade data do representante de item drop-in ou editor de item drop-in.
A propriedade listData é do tipo BaseListData, onde a classe BaseListData tem quatro subclasses: DataGridListData, ListData, TreeListData, e MenuListData. O atual tipo de dados do valor da propriedade listData depende do controle usando o representante ou editor de item drop-in. Para um controle DataGrid, o valor é do tipo DataGridListData, para um controle List o valor é do tipo ListData, para um controle Tree, o valor é do tipo TreeListData, e para o controle Menu, o valor é do tipo MenuListData.
O seguinte exemplo mostra o método de ajuste para a propriedade data para o controle NumericStepper que inicializa a propriedade value do NumericStepper baseado no valor da propriedade listData:
public function set data(value:Object):void
{
_data = value;
this.value = _listData ? parseFloat(_listData.label) : Number(_data);
dispatchEvent(new FlexEvent(FlexEvent.DATA_CHANGE));
}
No exemplo acima, o controle NumericStepper ignora a propriedade data quando ajustando a propriedade value do NumericStepper, e ao invés disso usa a propriedade listData.
Para implementar a interface IDropInListItemRenderer, você define um método que ajusta e pega para implementar a propriedade listData. Tipicamente o método de ajuste escreve o valor da propriedade listData para uma variável interna. A classe de lista sempre irá designar essa propriedade depois ajusta o item data provider na propriedade data.
Perceba que o método de ajsute para a propriedade listData não despacha um evento. Isso é porque as classes de lista sempre ajusta listData, depois ajusta a propriedade data. Ajustando a propriedade data também despacha o evento dataChange. Você nunca ajusta listData por conta própria, para que não precise despachar seu próprio evento.
O método data de ajuste chamaria o método invalidateProperties() para determinar se listData foi modificado, e manejá-lo de acordo.
O método de pegar retorna o valor atual da variável interna, como o exemplo seguinte mostra:
// 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;
}
Ver também
| Propriedade | Definido Por | ||
|---|---|---|---|
| listData : BaseListData
Implementa a propriedade listData usando métodos de pegar e ajustar.
| IDropInListItemRenderer | ||
| listData | propriedade |
listData:BaseListData [ler-escrever]
Implementos da propriedade listData usando métodos de pegar e ajustar.
public function get listData():BaseListData
public function set listData(value:BaseListData):void