Проверьте, содержит ли ComboBox элемент
у меня есть это:
<ComboBox SelectedValuePath="Content" x:Name="cb">
<ComboBoxItem>Combo</ComboBoxItem>
<ComboBoxItem>Box</ComboBoxItem>
<ComboBoxItem>Item</ComboBoxItem>
</ComboBox>
если я использую
cb.Items.Contains("Combo")
или
cb.Items.Contains(new ComboBoxItem {Content = "Combo"})
возвращает False
.
может кто-нибудь сказать мне, как я могу проверить, если ComboBoxItem
имени на ComboBox
cb
?
2 ответов
Items является ItemCollection
и not list of strings
. В вашем случае это collection of ComboboxItem
и вам нужно проверить его Content
собственность.
cb.Items.Cast<ComboBoxItem>().Any(cbi => cbi.Content.Equals("Combo"));
или
cb.Items.OfType<ComboBoxItem>().Any(cbi => cbi.Content.Equals("Combo"));
вы можете перебрать каждый элемент и перерыв в случае, если вы нашли нужный товар -
bool itemExists = false;
foreach (ComboBoxItem cbi in cb.Items)
{
itemExists = cbi.Content.Equals("Combo");
if (itemExists) break;
}
Если вы хотите использовать а в cb.Items.Contains("Combo")
вы должны добавить строки в свой ComboBox, а не ComboBoxItems:cb.Items.Add("Combo")
. Строка будет отображаться так же, как ComboBoxItem.