2010-08-26 4 views
2

hey, je l'ai construit un ComboBox qui obtient des éléments comme manuellement ceci:C# WinForm Principes de base Combobox

var newitem = new { fullname =c.Company+" "+ c.FirstName + " " + c.LastName, 
        custId = c.CustomerID }; 

c_dropCustomers.Items.Add(newitem); 

plus tard le combo événement de sélection, je voudrais sortir le custID (la valeur) seulement mais je ne sais pas comment l'atteindre.

SOS :)

+0

voir cet exemple: [Boucle dans les éléments de la zone de liste déroulante] (http://www.c-sharpcorner.com/Forums/ShowMessages.aspx?ThreadID=43850) – lsalamon

Répondre

4

enumerate C# 4.0:

dynamic item = c_dropCustomers.SelectedItem; 
dynamic customerID = item.custId; 
+0

+1 C'est cool. Je suppose que j'ai besoin de C# 4.0. – Crispy

0

Vous devez réellement définir une classe, de sorte que vous pouvez lancer plus tard. Vous ne pouvez pas diffuser dans un cours anonyme (AFAIK).

0

Si je comprends bien votre question:

var item = c_dropCustomers.SelectedItem; 
var custId = item.custId; 

EDIT: (C# 3.5)

Si c'est vraiment un type anonyme, vous aurez besoin de faire quelque chose comme ceci:

 ComboBox cb = new ComboBox(); 
     cb.Items.Add(new { fullname = "Company" + " " + "First Name" + " " + "Last Name", custId = 44 }); 

     cb.SelectedIndex = 0; 

     var item = cb.SelectedItem; 
     var custId = item.GetType().GetProperty("custId").GetValue(item, System.Reflection.BindingFlags.GetProperty, null, null, null); 
Questions connexes