none
combobox SelectedIndexChanged + Anonymous type RRS feed

  • Pergunta

  • Boas, estou a carregar uma combobox com os dados de uma tabela usando linq, e agora queria capturar a categoria seleccionada,


    Carregat tabela:
    DataClasses1DataContext dc = new DataClasses1DataContext();

                var q = (from c in dc.Categories
                        select new { c.CategoryName,c.CategoryID }).ToList();

                comboBoxCat.ValueMember = "CategoryID";
                comboBoxCat.DisplayMember = "CategoryName";
                comboBoxCat.DataSource = q;
               
    Seleccionar a categoria:
    Category cat = (Category)this.comboBoxCat.SelectedItem;
               
    int catID = Convert.ToInt32(this.comboBoxCat.SelectedItem);


    mas nao funciona como dá erro.

    Unable to cast object of type '<>f__AnonymousType0`2[System.String,System.Int32]' to type 'LinqApp.Category'.
    espero ter ajudado.
    terça-feira, 25 de janeiro de 2011 17:35

Respostas

  • Luis,

    a questão é que quando você aplicou o new depois do select, você criou um novo tipo, um tipo anonimo ao qual ele só existe dentro do contexto de execução do seu método. Não existe a necessidade de você fazer isto. tente fazer apenas:

    var q = (from c in dc.Categories
              select c).ToList();
    que possivelmente irá da certo


    Olavo Oliveira Neto
    Se for útil marque como resposta e faça um Developer feliz :)
    terça-feira, 25 de janeiro de 2011 17:59
    Moderador