CkeckBox nao desmarca + Flex[RESOLVIDO]

Salve galera.

Estou com o seguinte problema, Quando mando carregar o meu datagrid o meu checkbox vem desmarcado, marco o meu checkbox e faço o que tenho que fazer, quando mando atualizar o datagrid ele esta vendo marcado. Nao quero que ele venha marcado.

Meu codigo é esse

<mx:DataGrid x="10" y="10" width="1021" height="383" dataProvider="{listaTransmissao}" id="transmissaoDataGrid">
  <mx:columns>
      <mx:DataGridColumn headerText=" " dataField="nivelDeSinal" width="20" editable="true" > 
	 <mx:itemRenderer>
		<mx:Component>
			<mx:CheckBox selected="false" change="checkBox_selecionado(event);">
	         		<mx:Script>
		        	<![CDATA[
						import mx.controls.Alert;
		  				import mx.controls.CheckBox;
		  				import util.TrabalhaComboBox;
		  						
		  				private function checkBox_selecionado(evt:Event):void{
		  					TrabalhaCkeckBox.getInstance().validarCheckBoxSelecionadoTransmissoes(evt);
		  				}
												
				]]>
				</mx:Script>
			</mx:CheckBox>
		</mx:Component>
	</mx:itemRenderer>
</mx:DataGridColumn>
<!-- mais alguma colunas aqui -->
</mx:DataGrid>

Minha classe TrabalhaCkeckBox.as

public class TrabalhaCkeckBox.
	{
		import flash.events.Event;
		import mx.collections.ArrayCollection;
		import mx.controls.CheckBox;
		import dto.TransmissaoDTO;
		import dto.ComandoDTO;
		 import mx.controls.Alert;
		
		private static var _instance:TrabalhaComboBox;

	    private var transmissoesSelecionadas:ArrayCollection = new ArrayCollection();
	    private var comandosSelecionados:ArrayCollection = new ArrayCollection();
	
		
		public function TrabalhaCkeckBox.(){
			
		}
		
		public static function getInstance():TrabalhaCkeckBox
		{
			if (_instance == null)
				_instance = new TrabalhaCkeckBox();
			return _instance;
		}
	    
		public function validarCheckBoxSelecionadoTransmissoes(evt:Event):void{
			var ch:CheckBox = evt.currentTarget as CheckBox; 
			var transmissaoDTO:TransmissaoDTO  = ch.data as TransmissaoDTO;
			validarCheckBoxTransmissaoSelecionado(transmissaoDTO);
		}
		
		public function validarCheckBoxSelecionadoComandos(evt:Event):void{
			var ch:CheckBox = evt.currentTarget as CheckBox; 
			var comandoDTO:ComandoDTO  = ch.data as ComandoDTO;
			validarCheckBoxComandoSelecionado(comandoDTO);
		}
		
		public function adquirirTodasAsTransmissaoSelecionadas():ArrayCollection{
			return transmissoesSelecionadas;
		}
		
		public function limparTransmissoesSelecionadas():void{
			transmissoesSelecionadas.removeAll();
		}
		
		public function adquirirTodasAsComandoSelecionadas():ArrayCollection{
			return comandosSelecionados;
		}
		
		public function limparComandosSelecionados():void{
			comandosSelecionados = new ArrayCollection();
		}
		
		private function validarCheckBoxTransmissaoSelecionado(transmissaoDTO:TransmissaoDTO):void{
			if(transmissoesSelecionadas.contains(transmissaoDTO)){
				var indexItem:Number = transmissoesSelecionadas.getItemIndex(transmissaoDTO);
				transmissoesSelecionadas.removeItemAt(indexItem);
			}else{
				transmissoesSelecionadas.addItem(transmissaoDTO);
			}
		}
		
		private function validarCheckBoxComandoSelecionado(comandoDTO:ComandoDTO):void{
			if(comandosSelecionados.contains(comandoDTO)){
				var indexItem:Number = comandosSelecionados.getItemIndex(comandoDTO);
				comandosSelecionados.removeItemAt(indexItem);
			}else{
				comandosSelecionados.addItem(comandoDTO);
			}
		}
	}

Não sei se esse é o jeito certo de fazer, so sei que esta me dando muita dor de cabeça.

Att

Alguem!!!

Bom dia,
faça o seguinte, crie um creationComplete para o CheckBox, mais ou menos assim

   <mx:CheckBox selected="false" change="checkBox_selecionado(event);" creationComplete="init(event)">  
                    <mx:Script>  
                    <![CDATA[  
                        import mx.controls.Alert;  
                        import mx.controls.CheckBox;  
                        import util.TrabalhaComboBox;  
                                  
                        private function checkBox_selecionado(evt:Event):void{  
                            TrabalhaCkeckBox.getInstance().validarCheckBoxSelecionadoTransmissoes(evt);  
                        } 
                        private function init():void {
                               (event.target as CheckBox).selected = false;
                        } 
                                                  
                ]]>  
                </mx:Script>  
            </mx:CheckBox>  

depois me diz se funcionou ou não…
Mas seguinte, eu aconselho você criar um ItemRenderer como uma classe e adicioná-lo depois, ou melhor ainda, fazer uma listagem personalizada fica legal

Espero ter ajudado

Abraços

Funcionou nao!!!

sniff sniff :cry:

Como que você atualiza esse dataGrid?

Bom, dou um refresh no meu dataProvider.

Mas eu queria saber se tem atualizar o datagrid direto.

Att

Ta, mas me explica uma coisa,
esse negocio do checkbox é só pra poder selecionar vários registros ???

Bao, tentei assim e funcionou. Dai vou colocar esse topico como resolvido. mas se aparecer mais ideias, vai que a minha esta errada!
Sei que não é a solução mais ideal, supimpa, Judi Master, mas me ajudou.

<mx:DataGridColumn headerText=" " dataField="trasmissaoSelecionada" width="20" editable="true" > 
			<mx:itemRenderer>
					<mx:Component>
						<mx:CheckBox click="data.trasmissaoSelecionada=!data.trasmissaoSelecionada" selected="{data.trasmissaoSelecionada}"/>
				        </mx:Component>
			</mx:itemRenderer>
</mx:DataGridColumn>


 private function validarDadosParaEnviarComandosInstantaneo():void{
	  	
		  	var contadorDeEquipamentosMarcados:Number = 0;
		  	var cont:Number;
		  	
		  	if(comandoTxtInput.text.length <= 0){
		  	 	Alert.show("Nenhum comando foi informado.", 'Monitora Equipamento', mx.controls.Alert.OK);
		  	 	return;
		  	 }
		  	
		  	for(cont = 0; cont < listaTransmissao.length; cont++){
		  	 	var transmissao: TransmissaoDTO = listaTransmissao.getItemAt(cont,0) as TransmissaoDTO;
		  	 	if(transmissao.trasmissaoSelecionada == true){
		  	 		enviarComandosInstantaneo(transmissao);
		  	 		contadorDeEquipamentosMarcados++;
		  	 	}
		  	 }
		  	 
		  	 if(contadorDeEquipamentosMarcados <=0){
	  	 		Alert.show("Nenhum equipamento foi selecionado.", 'Monitora Equipamento', mx.controls.Alert.OK);
	  	 		return;
	  	 	 }
		  	 
		  	 buscarTransmissoesViaFiltro();
		  	 listaTransmissao.refresh();
		  	 Alert.show("Comandos enviados com sucesso!", 'Monitora Equipamento', mx.controls.Alert.OK);
	  }

Valeu galera!

[quote=fmachado.dev]Ta, mas me explica uma coisa,
esse negocio do checkbox é só pra poder selecionar vários registros ???[/quote]

Entao cara, eu tenho uma lista de equipamentos, o meu usuario pode selecionar qualquer um equipamento para enviar um comando.

por exemplo: em uma lista de 10 equipamentos ele pode selecionar o 5º e o 8º e mandar um comando para esses equimantos.

Att

então da pra tirar esse Itemrenderer, tem uma propriedade no datagrid que é “allowMultipleSelection” e, se você colocar como true, ele deixa selecionar vários itens. E para recuperar esses itens é dataGrid.selectedItens, que retorna um array.