在CheckBoxList中使用数据源

Gri*_*art 10 c# datasource checkboxlist winforms

我在Windows窗体应用程序中使用CheckBoxList,并尝试为其应用数据源.

有一个DataTable,"DT",以列id,name并且ischecked,我用这样的代码:

((ListBox)MyCheckBoxList).DataSource = dt;
((ListBox)MyCheckBoxList).DisplayMember = "name";
((ListBox)MyCheckBoxList).ValueMember = "id";
Run Code Online (Sandbox Code Playgroud)

如何为MyCheckBoxList中的所有项设置CheckState?

我将此值保留在我的数据表中,并希望将它们与MyCheckBoxList链接.

Gri*_*art 7

我分两步确定了我的问题.首先,我应用了数据源,然后在圆圈中为每个项设置Checked属性,如下面的代码所示:

((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);
}
Run Code Online (Sandbox Code Playgroud)

  • 真正可绑定的CheckedListBox不需要循环.我们应该能够以某种方式将ListBox项的IsChecked属性绑定到底层对象的属性. (4认同)

小智 0

我不确定是否有办法通过 ValueMember 属性设置检查。

你可以尝试一下:

foreach (DataRow item in dt.Rows)
{
     MyCheckedListBox.Items.Add(item["Name"].ToString(), Convert.ToBoolean(item["Checked"]));
}
Run Code Online (Sandbox Code Playgroud)