Winforms:如何使用数据绑定绑定CheckedListBox的Checkbox项

我在一个表单中有一个databinded checkedlistbox,我想知道是否甚至可以使用对象的某个属性对每个列表框项的复选框进行数据绑定。

在此先感谢任何帮助:)

编辑:也许我的问题被误解了。

我想知道是否可以对CheckedListBox的每个项目的复选框进行数据绑定。 我知道如何数据绑定到源以及如何通过迭代itmes以编程方式更改条目。 我不知道的是,是否有可能有一个实现INotifyPropertyChanged的类,以便当“CheckedState”属性更改时,CheckedListBox会更新自身。

根据Samich的回答,这是一个完整的例子,绑定源是一个Object

 private void Form1_Load(object sender, EventArgs e) { List lst = new List(); 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用于演示目的

你可以在这里找到答案: 将数据源与CheckBoxList一起使用

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

确保ValueMember的类型为bool

我刚刚得到了如何将sql中的表数据化为一个没有压力的checkboxlist。 我很高兴分享它。 我手动添加了它们……

  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); } 

要访问核对表列表中选中的项目,请使用

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

它真的很有效。 我现在就知道了。 我希望你喜欢它!