Inquiridor
Preencher controles - Combobox

Pergunta
-
Bom dia.
Tenho uma pagina com varios controles. Entre eles tenho 2 combobox que serão preenchidos com valores fixos depedendo da versão.
Ex: Para o cliente da Versão 1.0:
combobox1.items.add("1"); combobox1.items.add("2");
combobox2.items.add("1");
combobox2.items.add("2");
Ex: Para o cliente da Versão 2.0:
combobox1.items.add("1"); combobox1.items.add("2"); combobox1.items.add("3");
combobox2.items.add("1");
combobox2.items.add("2");
combobox2.items.add("3");Qual a forma mais elegante de fazer isto no silverlight? Criar uma classe, usar databindind???
Por favor, me dê um exemplo.
Att.
Teles
quarta-feira, 7 de março de 2012 12:09
Todas as Respostas
-
Boa noite,
Teles.
Ao meu ponto de vista isso vai depender muito da sua implementação ou seja da sua real necessidade caso seja algo simples que não necessite de customização, alterações constantes, valores que não se modificam e pequenos código entre outras situações penso que sua solução esta perfeita e atende a sua necessidade, mas caso haja a necessidade implementar algo mais elaborado segue uma pequena implementação que fiz para te auxiliar.
Abaixo o código da classe que gera as versões:
//Classe com estrutura e métodos das versões public class clVersoes { //Estrutura com dados das versões public struct clVersions { //Atributos das versões private int _valor; private string _descricao; //Métodos das versões public int valor { get { return this._valor; } set { this._valor = value; } } //Métodos das versões public string descricao { get { return this._descricao; } set { this._descricao = value ; } } } //Método que retorna a lista de versões public List<clVersions> getListVersion(int VersionCurrent) { //Inicializa atributos int count = 1; List<clVersions> lstreturn = new List<clVersions>(); //While que monta as versões sempre acrescenta um ao parâmetro while (count <= VersionCurrent + 1) { //Instancia da estrutura de versões clVersions clVersao = new clVersions(); //Inicialização dos atributos clVersao.valor = count; clVersao.descricao = "Versão " + count.ToString(); //Adiciona ao uma List lstreturn.Add(clVersao); //Incrementa contador count++; } //Retorna lista completa return lstreturn; } }
Agora como seria a sua chamada dentro do código para que preencha o combobox:
//Instancia da classe com os métodos clVersoes clVersao = new clVersoes(); //Define qual o atributo será mostrado no combobox //Pode ser "descricao" ou "valor" comboBox1.DisplayMemberPath = "descricao"; comboBox2.DisplayMemberPath = "descricao"; //Alimenta o combobox com as informações comboBox1.ItemsSource = clVersao.getListVersion(1); comboBox2.ItemsSource = clVersao.getListVersion(2); //Recuperando os dados selecionado clVersoes.clVersions itemSelected = (clVersoes.clVersions)comboBox1.SelectedItem; MessageBox.Show("Selecionado Descrição: " + itemSelected.descricao + " Número: " + itemSelected.valor.ToString());
Qualquer duvida estou a disposição.
Att.
terça-feira, 8 de maio de 2012 03:30 -
O Manoel praticamente todos os comandos que o senhor precisa. Caso precise utilizar o SelectedValue, atribua em SelectedValuePath o nome da propriedade que irá ser o valor. De qualquer forma a atribuição da valores a combo do silverlight é muito parecida com a do windowsforms. Dificilmente terá grandes problemas com isto. Se o senhor está trabalhando com com binding no DataContext do formulário, eu sugiro que coloque o binding na propriedade Tag do Combo e adicione o evento do tipo Loaded. Assim poderá isolar esta parte da busca com base na versão.
Samuel Fabel
- Editado Samuel Fabel quarta-feira, 9 de maio de 2012 13:21 erro na digitação
quarta-feira, 9 de maio de 2012 13:20