前几天在开发的时候,用到了Dev中的CheckedListBoxControl,我使用DataSource属性,给其绑定了一个List对象。界面显示都挺正常的,当若干个项的复选框被选中的后,它的checkedListBoxControl1.CheckedItems也是正常的。
唯独的问题是在代码中得到的checkedListBoxControl1.Items.Count 为0,自然就不能遍历控件的中的所有项。checkedListBoxControl1能够正确获得某个Item对象的方法就剩下GetItemValue(idx)、SetItemChecked等。
如果你也遇到这种情况,请使用下面的方法来遍历所有的Item,并做出相应的处理:
第一个例子是全不选:
public void ClearCheckState()
{
int idx = 0;
while (checkedListBoxControl1.GetItemValue(idx) != null)
{
checkedListBoxControl1.SetItemChecked(idx, false);
idx++;
}
}
第二个例子是遍历每个选项的Value
int idx = 0;
while (checkedListBoxControl1.GetItemValue(idx) != null)
{
object obj = checkedListBoxControl1.GetItemValue(idx);
// 你要做的处理逻辑
idx++;
}
当然,如果你不是通过DataSource进行绑定,而是通过Items.add来添加的话,上面的问题就不会存在。