2011-09-20 18 views
13

veritabanına bağlama ile nasıl bağlanırım Bir formda bir veritabanına eklenmiş bir denetim listesi kutusu var ve her bir liste kutusu öğesinin onay kutusunu belirli bir özelliğe sahip olup olmadığına bakmak isteyip istemediğimi bilmek istiyorum. bir obje. herhangi önceden yardım :)Winforms: CheckedListBox'un Checkbox öğesini

Düzenleme için

Teşekkür: Belki benim sorum yanlış yorumlandı.

CheckedListBox öğelerinin her birinin onay kutusunu işaretleyip yapılamayacağını bilmek isterim. Bir kaynağa nasıl bağlanacağını ve girişleri yinelemek suretiyle programların nasıl değiştirileceğini biliyorum. Bilmediğim şey, bir "CheckedState" özelliği CheckedListBox güncellemelerini değiştirdiğinde, INOTifyPropertyChanged'i uygulayan bir sınıfına sahip olmanın mümkün olup olmamasıdır.

cevap

30

Samich cevabı göre, İşte tam bir örnek, bağlama kaynağı bir Object

private void Form1_Load(object sender, EventArgs e) 
     { 
      List<randomClass> lst = new List<randomClass>(); 

      lst.Add(new randomClass()); 
      lst.Add(new randomClass()); 
      lst.Add(new randomClass()); 
      lst.Add(new randomClass()); 
      lst.Add(new randomClass()); 
      lst.Add(new randomClass()); 

      ((ListBox)this.checkedListBox1).DataSource = lst; 
      ((ListBox)this.checkedListBox1).DisplayMember = "Name"; 
      ((ListBox)this.checkedListBox1).ValueMember = "IsChecked"; 


      for (int i = 0; i < checkedListBox1.Items.Count; i++) 
      { 
       randomClass obj = (randomClass)checkedListBox1.Items[i]; 
       checkedListBox1.SetItemChecked(i, obj.IsChecked); 
      } 
     } 
    } 

    public class randomClass 
    { 
     public bool IsChecked { get; set; } 
     public string Name { get; set; } 
     public randomClass() 
     { 
      this.IsChecked = true; 
      Name = "name1"; 
     } 
    } 

randomClass Ben sadece bir CheckBoxList için sql tablo databind nasıl var

+2

Bunu zaten yapıyorum. Ben her şeyi bağlamak için kullanılan WPF gelen geliyorum ve checkListBox. "IsChecked" özelliği için bir bağlayıcı eklemek mümkün görünmüyor. Mülkün var olmadığını biliyorum, nasıl bağlayabiliriz? Sadece bunu yapmamızı sağlayan gizli bir numara olmadığından emin olmak istiyorum. – FailedDev

+1

DisplayMember bağlar ancak ValueMember değil!!! Anlamsız. Senin döngüsünü başarı ile kullandım. Teşekkürler –

+7

Tabi ki bu, iki yönlü __ veri paylaşımı değil. – TaW

7

Burada cevap bulabileceğiniz:

var checkBoxList = (ListBox)MyCheckBoxList; 
checkBoxList.DataSource = dataSource; 
checkBoxList.DisplayMember = "name"; 
checkBoxList.ValueMember = "enabled"; 

Using datasource with CheckBoxListValueMember tip bool ait olduğundan emin olun.

3

gösteri amaçlı olduğunu stres olmadan. Paylaşmaktan heyecan duyuyorum. Ben

 SqlConnection conn = new SqlConnection(); 
     SqlCommand cmd = new SqlCommand(); 
     conn.ConnectionString = "Data Source=MICMIKE\\SQLEXPRESS;Initial Catalog=Enterprise;Integrated Security=True"; 
     conn.Open(); 
     string query = "Select Position from Position";// position column from position table 
     cmd.Connection = conn; 
     cmd.CommandText = query; 

     SqlDataReader dr = cmd.ExecuteReader(); 
     while (dr.Read()) 
     { 
      string myItem = dr["Position"].ToString(); 
      checkedListBox1.Items.Add(myItem, true);//true means check the items. use false if you don't want to check the items or simply .....Items.Add(myItem); 
     } 

, CheckListBox kontrol öğelerine gir Gerçekten çalışıyor

 foreach(object item in Checkedlistbox1.CheckedItems) 
     { 
      string itemchecked = item.ToString(); 
      MessageBox.Show(itemchecked);// This will show all the checked items in the checklistbox. 
     } 

kullanmak için ... onları el ekledi. Şimdi anladım. Umarım beğenirsiniz!