我有一个checklistbox,我将其值绑定到Id和Values,当检查项目时,我将ID保存在数据库中,当表单加载时,我希望根据ID检查CheckedListbox项目。
我只能基于如下所示的索引绑定检查表框,我看到的另一种选择是获取值的索引并对其进行检查,但这在我的情况下不起作用,因为我只有检查表框的ID需要检查的项目。
int index = checkedListBox1.Items.IndexOf("42");
checkedListBox1.SetItemChecked(index , true);
这就是我绑定值的方式
ccBoxitem item = new ccBoxitem(a.name, a.id);
checkedListBox1.items.add(item);
public ccBoxitem (string name, int val)
{
this.name = name;
this.val = val;
}
如何根据ID来检查checkedlistbox
?
答案 0 :(得分:0)
例如,您可以遍历所有物品,然后检查所需物品:
private void CheckItem(int id)
{
for (int i = 0; i < checkedListBox1.Items.Count; i++)
{
if ((checkedListBox1.Items[i] as ccBoxitem)?.val == id)
{
checkedListBox1.SetItemChecked(i, true);
}
}
}
用法:
var id = GetId();
CheckItem(id);
答案 1 :(得分:0)
您可以使用下面的方法,它将首先按其值选择所需的项目,然后检查所选的项目
void CheckItem(CheckedListBox checkedListBox, int id)
{
checkedListBox.SelectedItem = checkedListBox.Items.OfType<ccBoxitem>().ToList().FirstOrDefault(i => i.val == id);
checkedListBox.SetItemChecked(checkedListBox.SelectedIndex, true);
checkedListBox.SelectedItem = null; // To clear selection if needed
}
您可以按以下方式调用它
CheckItem(checkedListBox1, 3);
CheckItem(checkedListBox1, 6);