Tecky‘s Blog

你拍一、我拍一,喝着茅台吹牛逼
  首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

DevExpress- CheckedListBoxControl DataSource属性存在BUG

Posted on 2011-02-09 09:51  Tecky Li  阅读(2108)  评论(2编辑  收藏  举报

前几天在开发的时候,用到了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来添加的话,上面的问题就不会存在。