ComboBox ve ListBox' ın Items koleksiyonu ile kontrollerin içerisine değer ekleyebilmekteyiz. Bunun haricinde datatable ya da list bir objeyi datasource' ına setlemek isteyebiliriz. Setleme işlemi haricinde bilmemiz gereken 2 özellik bulunmaktadır. DisplayMember ve ValueMember.
Öncelikle database' den verilerimizi çekelim ve datatable ile ListBox' ın DataSource özelliğine setleyelim. Sorgumuz aşağıdaki gibidir.
SELECT Ids, Adi, Soyadi FROM Kullanicilar
private void button1_Click(object sender, EventArgs e) { listBox1.DataSource = KullaniciDoldur(); }
KullaniciDoldur() fonksiyonu ile verilerimiz getirdik ve ListBox içerisine setledik. ListBox' ın görüntüsü aşağıdaki gibi olacaktır.
![www.hikmetokumus.com](/MakImages/05-10-2012-01.jpg)
Resimde de görüldü gibi satırlar DataRowView olarak görüntülenmektedir. Çünkü biz datatable' ı atama yaparken ListBox' ın hangi alanı göstereceğini belirtmedik. Bu işlem DisplayMember özelliği ile yapılmaktadır.
private void button1_Click(object sender, EventArgs e) { listBox1.DataSource = KullaniciDoldur(); listBox1.DisplayMember = "Adi"; }
Bu şekilde ListBox içerisinde Adi alanında bulunan veriler listelenecektir.
![www.hikmetokumus.com](/MakImages/05-10-2012-02.jpg)
DisplayMember ile ListBox içerisinde gözükecek olan alan bilgisini belirtiyoruz. ValueMember ilede seçilen satırın arka planda hangi değeri tutacağı belirtilmektedir. Örnek olarak seçilen kullanıcının Id bilgisini öğrenmek istersek ValueMember özelliğine Ids' i setlemek yeterlidir.
private void button1_Click(object sender, EventArgs e) { listBox1.DataSource = KullaniciDoldur(); listBox1.DisplayMember = "Adi"; listBox1.ValueMember = "Ids"; }
Bu şekilde seçilen kullanıcının Id bilgisini SelectedValue özelliği ile öğrenebiliriz.
![www.hikmetokumus.com](/MakImages/05-10-2012-03.jpg)
Aynı işlemler ComboBox içinde geçerlidir.
Başarılar dilerim.