Как установить пункт проверен в списке проверенных на основе значения ключа? - PullRequest
1 голос
/ 10 июля 2019

У меня есть checkListbox, для которого я связываю значения с Id и значениями, когда элементы проверяются, я сохраняю Id в базе данных, когда загружается форма, я хочу, чтобы элементы checkedListbox проверялись на основе идентификатора

Я могу привязать только проверенный список на основе индекса, как показано ниже, другой альтернативой, которую я вижу, является получение индекса значения и проверка его, но это не будет работать в моем случае, так как у меня есть только идентификаторы из проверенного списка элементы, которые необходимо проверить.

int index = checkedListBox1.Items.IndexOf("42");
checkedListBox1.SetItemChecked(index , true);

так я связываю значения

ccBoxitem item = new ccBoxitem(a.name, a.id);
checkedListBox1.items.add(item);
public ccBoxitem (string name, int val)
{
    this.name = name;
    this.val = val;
}

Как я могу проверить checkedlistbox на основе идентификатора?

Ответы [ 2 ]

0 голосов
/ 10 июля 2019

Вы можете использовать метод ниже, он сначала выберет нужный элемент по значению, а затем проверит выбранный элемент

void CheckItem(CheckedListBox checkedListBox, int id)
{
    checkedListBox.SelectedItem = checkedListBox.Items.OfType<ccBoxitem>().ToList().FirstOrDefault(i => i.val == id);
    checkedListBox.SetItemChecked(checkedListBox.SelectedIndex, true);
    checkedListBox.SelectedItem = null; // To clear selection if needed
}

И вы можете назвать это, как показано ниже

CheckItem(checkedListBox1, 3);

CheckItem(checkedListBox1, 6);
0 голосов
/ 10 июля 2019

Например, вы можете циклически перебирать свои товары, а затем выбирать нужные:

 private void CheckItem(int id)
 {
     for (int i = 0; i < checkedListBox1.Items.Count; i++)
     {
         if ((checkedListBox1.Items[i] as ccBoxitem)?.val == id)
         {
             checkedListBox1.SetItemChecked(i, true);
         }
     }
 }

использование:

var id = GetId();
CheckItem(id);
...