Salve ragazzi, sto da poco utilizzando c# con linq e sto cercando di creare una semplice applicazione che si interfacci con un database.

Ho una listBox in cui sono presenti degli articoli che voglio "snellire" selezionando una specifica categoria da una combobox, il mio codice è il seguente:

codice:
var art_per_cat = from art in db.articolo
                                where art.IDtipo == (decimal) comboBoxCategoria.SelectedValue
                                select art;
              listBoxArticolo.DataSource = art_per_cat;              listBoxArticolo.DisplayMember = "nomeArticolo";
              listBoxArticolo.ValueMember = "IDarticolo";
In qualche modo sembra funzionare, ma in compilazione ricevo un errore di casting sulle ultime due righe

queste sono le mie due combobox:
codice:
comboBoxFornitore.DataSource = db.fornitore;
              comboBoxFornitore.DisplayMember = "nome";
              comboBoxFornitore.ValueMember = "IDfornitore";
                comboBoxCategoria.DataSource = db.tipo_articolo;
              comboBoxCategoria.DisplayMember = "nomeTipo";
              comboBoxCategoria.ValueMember = "IDtipo";
mi chiedevo, esiste un modo più "sicuro" se non pulito di effettuare un confronto tra un elemento di una combobox e un attributo di una tupla?

per adesso usare
codice:
where art.IDarticolo == (decimal)listBoxArticolo.SelectedValue
mi risulta parecchio scomodo

grazie per il vostro aiuto