Как получить доступ к указанному полю ComboBox - PullRequest
0 голосов
/ 11 января 2019

У меня есть ComboBox, который получает поля Text и Value из объекта DataTable.

 foreach (DataRow dr in dtSip.Rows)
       {
         cbxSipNo.Items.Add(new { Text = dr[0].ToString() ,Value = dr[2].ToString()});
       }
       cbxSipNo.ValueMember = "Value";
       cbxSipNo.DisplayMember = "Text";

Моя проблема при доступе к указанным полям Текст и Значение, как показано ниже.

if (cbxSipNo.Items.Contains( new { Text= row.Cells[5].Value.ToString()} )
   {
    //some code
   }

Во время работы с содержимым я не мог найти доступ к текстовому полю. Когда я пытаюсь без нового синтаксиса, он ищет комбинацию полей текста и значения. Как я могу содержать содержит в поле текста ComboBox?

1 Ответ

0 голосов
/ 11 января 2019

Один из подходов - создать класс.

class MyItem
{
    public string Text { get; set; }
    public string Value { get; set; }
}

И добавьте значение строки данных в объект вышеупомянутого класса в поле со списком, как

foreach (DataRow dr in dtSip.Rows)
{
    cbxSipNo.Items.Add(new MyItem { Text = Convert.ToString(dr[0]), Value = Convert.ToString(dr[2]) });
}

И затем вы можете привести свои элементы комбинированного списка к классу выше MyItem и затем проверить, присутствует ли Any элемент в комбинированном окне, которое содержит значение строки данных

string str = row.Cells[5].Value; 

if (cbxSipNo.Items.Cast<MyItem>().Any(x => Convert.ToString(str).Contains(x.Text)))
{
    //some code
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...