2013-12-16 34 views
5

Bir ComboBox sahip ve bundan verileri doldurmak nasıl yani:Varsayılan değer DataSource

SectorCollection sectorCollection = sectorController.SearchAll(); 

comboSector.DataSource = null; 

comboSector.DataSource = sectorCollection; 
comboSector.DisplayMember = "titleSector"; 
comboSector.ValueMember = "idSector"; 

İstediğim şey bir olmadan combobox bir metin gibi bir ön veri ayarlamaktır değer. "Bir Sektör Seç" gibi. Böylece kullanıcı ne seçtiğini bilir.

+3

Bu winform veya asp.net nedir? – Steve

cevap

3

o zaman sen eklenen yeni Sector örneği olarak seçimi istemini eklemem gerekiyor bu

sectorCollection.Insert(0, new Sector() {idSector=0, titleSector="Select a sector"}) 

comboSector.DataSource = sectorCollection; 
comboSector.DisplayMember = "titleSector"; 
comboSector.ValueMember = "idSector"; 

gibi bir şey kod gereken bir WinForm combobox kullanıyorsanız koleksiyonu birleştirin ve daha sonra koleksiyonu combobox'ınıza bağlayın. Eğer alway lazım Selectedındex ayarlayın listenin başında olacak

+0

Bu çalıştı, teşekkürler. – Jonas452

+0

+1, yardımcı olmak için ihtiyacım olana yetecek kadar yakın. – ghostJago

+1

@ghostJago Tamamen yardımcı olmak için eksik olan nedir? – Steve

4

hemen sonra varsayılan olarak 0 dizininde yeni bir öğe eklemek senin DataBind(): Bu WinForms ise o zaman 0 dizininde sectorCollection yeni bir öğe eklemek istiyorum (eğer demedin)

comboSector.DataSource = sectorCollection; 
comboSector.DisplayMember = "titleSector"; 
comboSector.ValueMember = "idSector"; 
comboSector.DataBind(); 

comboSector.Items.Insert(0, "Select a Sector."); 

combobox'a atanmadan önce. Diğer tüm kodu aynı kalır:

sectorCollection.Insert(0, new Sector() { idSector = 0, titleSector = "Select a sector." }); 
+0

+1 Doğru, özlü ve yaygın olarak kullanılan çözüm için. – nestedloop

+0

Ancak, bir ComboBox'ta "DataBind" yöntemi yoktur, Veriyi Combobox'a Bağlamak zorunda olduğumu anladım, böylece onu değiştirebilirim. Ama bunu nasıl yapabilirim? – Jonas452

+0

Bu winform'lar mı? – DGibbs

1

Daha doğrusu bir kukla öğe ekleyerek daha düşünmek açılan ekrana gelen başka amaçlar için bir kısmını koleksiyonu kullanıyorsanız Tabii ki bu bir sorun olabilir - 1 ve metni ekleyin:

comboBox1.SelectedIndex = -1; 
comboBox1.Text = "Select an item";