从数据绑定 DevExpress CheckedListBoxControl 获取项目索引

Soh*_*pta 4 devexpress checkedlistbox .net-2.0 winforms

我试图从CheckedListBoxControl 中找到特定值的索引。CheckedListBoxControl 具有设置为 DataTable 的 DataSource、DisplayMember、ValueMember 和两列。现在,我必须使用 ValueMember 中的某个值从 CheckedListBoxControl 中查找其索引,然后使用该索引调用SetItemChecked()方法,从而将 CheckedState 属性设置为 true 。

我找不到任何返回索引的属性或方法。请帮忙。

Dmi*_*ryG 5

如果列表框控件绑定到数据源,则可以使用GetItem()方法和 ItemCount 属性遍历所有列表框项:

for(int i = 0; i < checkedListBoxControl.ItemCount; i++) {
    object dataRow = checkedListBoxControl.GetItem(i);
}
Run Code Online (Sandbox Code Playgroud)

要查找指定项目的索引,您可以使用FindItem()方法
通过 DisplayText 进行搜索:

string s = "searchString";
int index = checkedListBoxControl.FindItem(startIndex, true, delegate(ListBoxFindItemArgs e) {
   e.IsFound = s.Equals(e.DisplayText);
});
Run Code Online (Sandbox Code Playgroud)

按 ValueMember 搜索:

object value = 100;
int index = checkedListBoxControl.FindItem(startIndex, true, delegate(ListBoxFindItemArgs e) {
   e.IsFound = object.Equals(value, e.ItemValue);
});
Run Code Online (Sandbox Code Playgroud)

另请查看“如何获取数据绑定 CheckedListBoxControl 的选中行”一文。