2016-08-26 6 views
1

Мне нужно сравнить, если Radcombobox имеет ItemElements, который соответствует моей ожидаемой строке. Вот то, что я пытаюсь сделать:Как сравнить ItemElements Radcombobox с ожидаемой строкой?

foreach (IRadComboBoxItem item in comboBox.ItemElements) 
{ 
    var itemExists = comboBox.ItemElements.FirstOrDefault(items => item.Text.Contains(expectedString)); 
    if (itemExists == null) continue; 
    itemExists.Select(); 
    return true; 
} 

Однако comboBox.Text.Contains(expectedString) не поддерживается, как я сравниваю IRadComboBoxItem со строкой. Не могли бы вы предложить, как это сделать?

ответ

2

Использование метода LINQ из Any:

return comboBox.ItemElements.Any(item => item.Text.Contains(expectedString)); 

В вашем коде выше вы смешан чуток использование различных методов LinQ

  1. В FirstOrDefault - возвращает первый элемент в коллекции, соответствует предикату, в противном случае default(T).
  2. Тогда, если это не null, вы выполняете Select, но назначаете его в никуда.
  3. У вас есть этот код в цикле foreach - но не используйте item в никуда. Вам не нужна петля, потому что вы пытаетесь использовать методы Linq (которые негласно используют петли сами)

следующий комментарий, что вы хотите:

var wantedItem = comboBox.ItemElements.FirstOrDefault(item => item.Text.Contains(expectedString)); 
if(wantedItem != null) 
{ 
    //What you want to do with item 
} 

не работал с RadComboBox себя но this site может быть:

RadComboBoxItem item = comboBox.FindItemByText(expectedString); 

Я предполагаю, что, если он не найдет его, возвращается null

+0

Спасибо за ваш ответ. Я исправил свой код. Однако ваше предложение не решило мою проблему. У меня есть combobox, который является привязкой к базе данных. Таким образом, свойство Text недоступно. item.Text всегда имеет значение null, хотя comboBox.ItemElements возвращает элементы. Поэтому я не могу сравнить строки. Далее я использую Select, чтобы выбрать этот элемент из combobox, который соответствует ожидаемомуString – SKN

+0

@SKN - проверить последнее обновление –