none
Recuperar o valor de uma checkbox dentro de uma Listbox RRS feed

  • Pergunta

  • Pessoal,

          Estou começando no WPF e estou bem perdido.

          Eu tenho Listbox, e coloquei um checkbox dentro. Estou carregando as checkbox de uma List<>.

          Minha dúvida é: Essa é a melhor maneira de fazer isso? E como recuperar os IDs das checkboxs?

          Eu estou listando os setores de estoque e vou precisar guardar os setores selecionados em uma tabela, ou seja, eu preciso dos IDs.

     <ListBox Name="lboxSetorEstoque" ItemsSource="{Binding lSetorEstoque}" >
                      <CheckBox Content="{Binding NomeSetorEstoque}"  />
                    </ListBox>

      

     InitializeComponent();
    
          Conn oConn = new Conn();
          oConn.Open();
          try
          {
            SetorEstoque oSetorEstoque = new SetorEstoque();
            lSetorEstoque = oSetorEstoque.Select(oConn);
    
          }
          catch (Exception ex)
          {
            throw new Exception(ex.Message);
          }
          finally {
            oConn.Close();
          }
         
    
         this.DataContext = this;
    

     

      Como devo fazer?

     

    Obrigado

     


    André Mello
    quarta-feira, 15 de junho de 2011 17:45

Respostas

  • Faça com que este Checkbox seja o ItemTemplate do ListBox, da maneira que está, o checkbox será o único item da lista. Após isso o selected item será a instancia do objeto Setor Estoque.
    Allan Tavares - Desenvolvedor Pleno - Spread Systems/Banco do Brasil
    quinta-feira, 4 de agosto de 2011 20:19

Todas as Respostas

  • Fala Andre,

    tente usar a propriedade name no checkbox depois é só verificar quais foram selecionadas, acho que assim funciona !!

    quarta-feira, 13 de julho de 2011 00:35
  • Veja se te ajuda:

     

        private void btnClick_Click(object sender, RoutedEventArgs e)
        {
          string selecionados = "";
    
          //Percorre todos os elementos que estão contidos no ListBox
          foreach (var checkBox in lbLista.Items)
          {
            //Como tenho a certeza que os controels que estão no ListBox são todos CheckBox então faço um Cast
            CheckBox cb = ((CheckBox)checkBox);
            //Se o CheckBox estiver marcado então adicono na string
            if(cb.IsChecked.GetValueOrDefault(true))
            {
              //Atenção no cb.PersistId está absoleto... Procure qual é o método que foi inserido para suprir essa necessidade
              selecionados += "\nNome: " + cb.Name + " ID: " + cb.PersistId;
            }
          }
    
          System.Windows.MessageBox.Show(selecionados);
        }
    

    att

    Evandro


    Não há medalha de ouro sem suor e não há sucesso sem trabalho e dedicação!
    quinta-feira, 28 de julho de 2011 23:13
  • Faça com que este Checkbox seja o ItemTemplate do ListBox, da maneira que está, o checkbox será o único item da lista. Após isso o selected item será a instancia do objeto Setor Estoque.
    Allan Tavares - Desenvolvedor Pleno - Spread Systems/Banco do Brasil
    quinta-feira, 4 de agosto de 2011 20:19