Menu Chiudi

Usare una classe per popolare una combo box

Nella Classe creare lo stato interno, il costruttore ed un metodo che restituisca una lista di oggetti:
<br/>
 public class Oggetti
    {
//Riferimento a Linq
DataSources.DataClassesOggettiDataContext db = new DataSources.DataClassesOggettiDataContext();

private int _idOggetto;
        public int IDOggetto
        {
            get { return _idOggetto; }
            set { _idOggetto = value; }
        }

        private string _oggetto;

        public string Oggetto
        {
            get { return _oggetto; }
            set { _oggetto = value; }
        }
}
public Oggetti(){}

public List<Oggetti> GetOggetti()
        {
            List<Oggetti> oggetti = new List<Oggetti>();

            var tmpLista = from n in db.TabOggetti
                       orderby n.TipoOggetto
                       select n;

            Oggetti oggetto;

            foreach (var tmp in tmpLista)
            {
                oggetto = new Oggetto();
                oggetto._idOggetto = tmp.IDOggetto;
                oggetto._oggetto = tmp.Oggetto;
                tmpLista .Add(oggetto);
            }

            return tmpLista;

        }
}

Nella maschera dove è contenuta la combo cliccare per modificare la sorgente dati
DataSource > Add Project Data Source
nella finestra cne compare scegliere Object e in Data Source Configuration Wizard (ulteriore finestra) scegliere la classe da cui derivare i dati.

configurare la combo con i dati da visualizzare (value e display).

Infine, nel code behind inserire le seguenti righe dove necessario:
Oggetti clsOggetti = new Oggetti();
List<Oggetti> oggetti = clsOggetti.GetOggetti();

foreach(var oggetto in oggetti)
{
OggettoBindingSource.Add(oggetto); //Creato nella maschera dopo il wizard
}

comboBox1.Refresh();

Pubblicato il Sviluppo sw