Make a combobox assume C #

2

I have doubts about making combobox a value.

I have two combobox with the 'low, medium and high' items and I want it if I select low on the combobox it assumes the value 0, if it means medium it assumes 0.5 and if it is selected high it assumes 1. And save them values in BD.

    
asked by anonymous 19.02.2015 / 13:32

2 answers

3

This is very simple, just follow the example below:

//Os objetos para serem utilizados
var objetos = new List<object>();

objetos.Add(new {valor = 0, nome = "Baixo"});
objetos.Add(new {valor = 0.5, nome = "Médio"});
objetos.Add(new {valor = 1, nome = "Alto"});

//É o nome da propriedade do objeto que será visível para o usuário
comboBox1.DisplayMember = "valor";
//É o nome da propriedade do objeto que servirá de valor
comboBox1.ValueMember = "nome";
comboBox1.DataSource = objetos;

And to get the value that was selected by the user just do this:

//Exemplo de como pegar o valor que foi selecionado pelo usuário
var valorSelecionado = (double)comboBox1.SelectedValue;
    
19.02.2015 / 14:47
1

Pass objects to the ComboBox in this case:

// crie uma classe que represente sua medida
public class Medida
{
    public string Representacao { get; set; }

    public double Valor { get; set; }

    // IMPORTANTE: isto é usado pelo ComboBox
    public override string ToString()
    {
        return Representacao;
    }
}

Example on adding items:

Medida[] medidas = new Medida[]
    {
        new Medida() {Representacao = "Alto", Valor = 0.75 },
        new Medida() {Representacao = "Médio", Valor = 0.50 },
        new Medida() {Representacao = "Baixo", Valor = 0.25 },
    };
this.comboBox1.Items.AddRange(medidas);

How to get the value you want to update the database:

// após o usuário selecionar o item do ComboBox você pode pegar o valor a partir disso:
// TODO: validar se o item é nulo ou não
double valor = (comboBox1.SelectedItem as Medida).Valor;
    
19.02.2015 / 13:43