Получить индекс элемента из databound DevExpress CheckedListBoxControl


Я пытаюсь найти индекс определенного значения из CheckedListBoxControl . CheckedListBoxControl имеет источник данных, DisplayMember, ValueMember, установленный в DataTable, и два столбца, воспринимающие данные. Теперь я должен установить свойству CheckedState значение true, найдя его индекс из CheckedListBoxControl, используя некоторое значение из ValueMember и затем вызывая метод SetItemChecked () с этим индексом.

Я не могу найти ни одного свойства или метода, которые возвращает индекс. Пожалуйста помочь.

1 3

1 ответ:

Если элемент управления ListBox привязан к источнику данных, можно выполнить итерацию по всем элементам listbox с помощью метода GetItem () и свойства ItemCount:

for(int i = 0; i < checkedListBoxControl.ItemCount; i++) {
    object dataRow = checkedListBoxControl.GetItem(i);
}

Для нахождения индекса указанного элемента можно воспользоваться методом FindItem ()
поиск по DisplayText:

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

Поиск по ValueMember:

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

Пожалуйста, также взгляните на статью" Как получить проверяемые строки checkedlistboxcontrol с привязкой к данным".