SetItemCheckState在每个语句中都被打破!的帮助

本文关键字:帮助 语句 SetItemCheckState | 更新日期: 2023-09-27 18:04:38

我是新来的,有一个关于c#的CheckedListBox的问题。

我用SQLite数据库文件中的数据构建了CheckedListBox。

我想让用户选中或取消选中项目,这样做会在数据库中更新。

当您再次打开列表时,您之前选中的项目仍应选中。例如,如果数据库中的布尔字段对特定项显示为"true",则应该对其进行检查。

下面是我使用的代码:
index = 0;
        foreach (DataRowView item in CheckedListBox.Items)
            {
                if (item.Row["viewed"].ToString() == "true")
                {                        
                   CheckedListBox.SetItemCheckState(index, CheckState.Checked);                        
                }
                index++;
            }

当我注释掉If语句中的行时,循环遍历所有项,但是当我像上面一样保留它时,循环只进入一次。

为什么?

我对c#很陌生。

谢谢你的帮助:)

SetItemCheckState在每个语句中都被打破!的帮助

for loop代替foreach

        for (int i = 0; i < checkedListBox1.Items.Count; i++)
        {
            if (((DataRowView)checkedListBox1.Items[i]).Row["viewed"].ToString() == "true")
            {
                checkedListBox1.SetItemCheckState(i, CheckState.Checked);
            }
        }