Componente: BindByField
Toda vez é a mesma coisa. Tomemos o ComboBox e o DataGrid como exemplo. Você precisa selecionar um item no primeiro de acordo com o Item selecionado no segundo, mas você não pode usar o DataBinding simplesmente ligando as propriedades "selectedIndex" ou "selectedItem". Você provavelmente terá que fazer um laço para selecionar o item no ComboBox que tenha uma propriedade cujo valor é igual ao valor da mesma propriedade do item selecionado no DataGrid.
E lá vem o trecho de código repetido inúmeras vezes:
-
/*
-
Seleciona o item no ComboBox que tenha uma propriedade cujo valor
-
é igual ao valor da mesma propriedade do item selecionado no DataGrid
-
*/
-
private function matchComboItem():void
-
{
-
var matchField:String = "rowId";
-
for each (var item:Object in cb.dataProvider)
-
{
-
if (item[matchField] == dg.selectedItem[matchField])
-
{
-
cb.selectedItem = item;
-
break;
-
}
-
}
-
}
Sim, o código é simples! Mas para quê ficar repetindo isto toda vez? Pois bem, por isto eu resolvi fazer o componente BindByField. No lugar do trecho de código acima você simplesmente usa:
-
<BindByField source="dg.selectedItem" destination="cb.selectedItem" field="rowId"/>
Tal como é claro na sintaxe (ou pelo menos deveria ser) o que você está fazendo é ligando (bindando como muitos gostam de falar) a propriedade "selectedItem" de um ComboBox à propriedade "selectedItem" de um DataGrid através do campo "rowId". Veja o exemplo com código fonte:
6 comentários para “Componente: BindByField”
Meu primeiro comentário: Show d boooola…hehe
Não é nenhum “showDown” ou “moveRose”, mas quebra o galho. Hehehe!
Cadê o componente para fazer o download?
Olá Alberto,
Botão Direito na Aplicação Exemplo -> View Source.
Antes de mais nada parabéns pelo post e pelo blog em greral, ainda não conhecia e achei muito bacana.
Este componente funcionaria se o combobox e o datagrid tivessem seus dataproviders de arrays trazidos de um banco de dados? Testei aqui e não consegui. Pois neste caso o field=”rowId” não existe nem no combobox nem no datagrid.
Obrigado
[...] Componente que já faz o binding para textInputs, comboBox, radio, chkBox, etc http://blog.dclick.com.br/2007/08/28/componente-bindbyfield/pt/ [...]

