İlginizi Çekebilir
  1. Ana Sayfa
  2. C Sharp

C# DevExpress CheckedListBoxControl Veri Alma Sorunu

C# DevExpress CheckedListBoxControl Veri Alma Sorunu
+ - 0

Merhaba arkadaşlar, C# DevExpress CheckedListBoxControl Veri Alma Sorunu dersi ile tarihin tozlu raflarından gelen derslere devam ediyorum. :D Bu dersimizde DevExpress ‘e ait olan CheckedListBoxControl’e yüklediğimiz verilerden, işaretlediklerimizi alamama sorununa değineceğim.

C# DevExpress CheckedListBoxControl Veri Alma Sorunu

Bu sorunun asıl kaynağı C# DevExpress CheckedListBoxControl veri yükleme işleminden kaynaklanıyor. Verileri yükleme şeklimizi klasik yöntem ile yaparsak işaretlenmiş verilerin Checked durumuna ulaşamıyoruz. Sorunun sebebini, eklenen verileri CheckedListBoxControl ‘e ait bir item olarak görmediği için alamadığını düşünüyorum.

Klasik yükleme şeklimiz şöyle oluyor.

DataTable dt =  new DataTable();
// datat table doldurma işlemleri

clb_ait_oldugu_kategoriler.DataSource = dt;
clb_ait_oldugu_kategoriler.DisplayMember = "Kat_Adi";
clb_ait_oldugu_kategoriler.ValueMember = "Kat_Kodu";

Bu şekilde yapılan yüklemelerde ( CheckedListBoxControl data bind ) işaretlenen verileri alamıyoruz. Bu durumda yükleme işlemini bir döngü aracılığı ile yaparsak;

for (int i = 0; i < dt.Rows.Count; i++)
{
    clb_ait_oldugu_kategoriler.Items.Add(dt.Rows["Kat_Adi"].ToString());
}

İşaretlenen verileri almakta bir sorun yaşamıyoruz.

Burada, yukarıda bahsettiğim gibi databind yaptığımızda verilerin sadece görüntü olarak orada olduğunu düşünüyorum. CheckedListBoxControl ‘un bir item nesnesi olmadığı için verilerin işaretlenme durumunu algılayamıyor.

Sorunun kaynağını düzelttikten sonra aşağıdaki yöntem ile rahatla işaretlenen verileri alabiliyoruz.

string kategoriler ="";
foreach (CheckedListBoxItem item in clb_ait_oldugu_kategoriler.Items)
            {
                if (item.CheckState == CheckState.Checked)
                    kategoriler += item + ",";
            }

 

Dikkat ettiyseniz buradaki sorunumuz aslında işaretlenen verileri alamamaktır. Ancak bu soruna sebep olan şey ise bambaşka bir durum. Bu gibi şeylere çok fazla rastlıyoruz. Bu sebeple karşımıza çıkan bir hatayı düşünmeden çözüm üretmeye kalkmak bize sorun olacaktır. Örneğin burada hemen CheckedListBoxControl ‘ü silip başka bir nesne de kullanabilirdik. Ancak bu yaptığımız tasarımımızı değiştirmemize neden olacak bir durumdur ve belki de hiç içimize sinmeyecek bir bir görüntüye sebep olacaktır.

 


Bu yazımızında sonuna geldik dostlar.

C Sharp Eğitim Seti eğitimi sayfasına gitmek için tıklayınız.

Derslerime özel olarak hazırladığım Github Projeme buradan ulaşabilirsiniz…

Sağlıcakla ve takipte kalın. ?

Bu yazıya tepkiniz ne oldu?

Yazar Hakkında

Lise Ağ Sistemleri ve Yönetimi bölümü, üniversite Bilgisayar Programcılığı bölümü Ön Lisans, Yönetim Bilişim Sistemleri Lisans öğrenimi aldım. Askerlik görevimi tamamladım. Uzmanlık alanım; C# ve SQL Programlama dilleri ile müşteri odaklı, kullanıcı dostu ERP ve CRM gibi sistemleri geliştirmektir. Ayrıca şuanda PHP ve MYSQL alanında projeler geliştirmekteyim. C++, Phyton, Xamarin, MVC gibi konuları öğrenmek ve kendimi geliştirme çabası içerisindeyim. Discord için: https://discord.gg/FBxZeHu9

Değerli yorumlarınızı bekliyorum. :)