none
Combobox mostrar carro conforme preço selecionado RRS feed

  • Pergunta

  • Tenho o seguinte código

                List<Car> carList = new List<Car>();  

    carList.Add(new Car() { Name = "Ferrari", Price = 150000 });
    carList.Add(new Car() { Name = "Honda", Price = 12500 });
    carList.Add(new Car() { Name = "Toyota", Price = 11500 });
    ComboBox cb = new ComboBox();


    _cars.DisplayMemberPath = "Name";
    _cars.ItemsSource = carList;
    Quando clicar em um botão ele vai enviar para combobox o valor 12500 que é o preço e o que será mostrado na combobox é Honda que é o nome do carro que custa 12500

    Como fazer??
    • Editado Jjunior75 segunda-feira, 11 de maio de 2009 18:54
    domingo, 10 de maio de 2009 02:54

Respostas

  • Uma maneira que testei e deu certo, foi utilizar um for na sua lista, verificar qual dos itens possui o mesmo preço e atribuir o valor da variável no for para o index de seu combobox.

    Segue um exemplo:

    private void btn_Click(object sender, RoutedEventArgs e)
            {
                int intValor = 12500;
                
                for (int i = 1; i < lstCars.Count; i++)
                {
                    if (lstCars[i].Price == intValor)
                    {
                        cbbCarros.SelectedIndex = i;
                    }
                }
            }
    No caso, você tem que declarar sua Lista fora dos métodos.

    Espero ter ajudado.

    "Se sua pergunta foi respondida, por favor, marque como resposta."
    segunda-feira, 18 de maio de 2009 17:15
    Moderador

Todas as Respostas

  • Uma maneira que testei e deu certo, foi utilizar um for na sua lista, verificar qual dos itens possui o mesmo preço e atribuir o valor da variável no for para o index de seu combobox.

    Segue um exemplo:

    private void btn_Click(object sender, RoutedEventArgs e)
            {
                int intValor = 12500;
                
                for (int i = 1; i < lstCars.Count; i++)
                {
                    if (lstCars[i].Price == intValor)
                    {
                        cbbCarros.SelectedIndex = i;
                    }
                }
            }
    No caso, você tem que declarar sua Lista fora dos métodos.

    Espero ter ajudado.

    "Se sua pergunta foi respondida, por favor, marque como resposta."
    segunda-feira, 18 de maio de 2009 17:15
    Moderador
  • Não funcionou, acredito que não esteja declarando a lista corretamente

    Erro: ItemCLIENTE(i).CODIGO is not member of system.array
    Private sub ...
    
    Dim ItemCLIENTE As List(Of summer.WEBSRVpedidos.VENDEDORES())
    
            Dim intValor As Integer = e.Result.Item(0).COD_VENDEDOR()
    
            For i As Integer = 1 To ItemCLIENTE.Count - 1
                If ItemCLIENTE(i).CODIGO = intValor Then
                    CBO_VENDEDORES.SelectedIndex = i
                End If
            Next
    
    end sub



    sexta-feira, 22 de maio de 2009 02:11
  • Junior. 

    Em meu exemplo eu utilizei a lista carList que você mencionou. Depois eu verifico na lista se o valor recebido na variável intValor é igual ao valor da linha i  da lista. Caso seja, eu atribuo a propriedade SelectedIndex com o valor da lista. A própria lista irá popular o combobox, logo a posição na lista será igual a posição no combobox.

    Utilize o carList para fazer esta verificação (a mesma lista que está populando o combobox).

    Espero ter ajudado.

    "Se sua pergunta foi respondida, por favor, marque como resposta."
    sexta-feira, 29 de maio de 2009 14:22
    Moderador
  • Essa sua ideia me fez pensar melhor e consegui construir minha solução para este problema.

    Obrigado!


    Júnior Pacheco

    sexta-feira, 21 de setembro de 2012 14:58