Using datasource with CheckBoxList

Grinart picture Grinart · Jul 21, 2011 · Viewed 35.7k times · Source

I use CheckBoxList in my Windows Forms application and am trying to apply a datasource for it.

Having a DataTable, 'dt', with columns id, name and ischecked, I use such code:

((ListBox)MyCheckBoxList).DataSource = dt;
((ListBox)MyCheckBoxList).DisplayMember = "name";
((ListBox)MyCheckBoxList).ValueMember = "id";

How do I set CheckState for all items in MyCheckBoxList?

I keep this value in my datatable and want to link them with MyCheckBoxList.

Answer

Grinart picture Grinart · Jul 22, 2011

I've decided my problem in two steps. First, I applied the datasource, and then in circle set the Checked property for each item like in the following code:

((ListBox)MyCheckBoxList).DataSource = dt;
((ListBox)MyCheckBoxList).DisplayMember = "name";
                    ...

for (int i = 0; i < folloving.Items.Count; i++ )
{
    DataRowView row = (DataRowView)MyCheckBoxList.Items[i];
    bool isChecked = Convert.ToBoolean(row["checked"]);
    MyCheckBoxList.SetItemChecked(i, isChecked);
}