检查组合框是否包含项目
本文关键字:包含 项目 是否 检查组 组合 检查 | 更新日期: 2023-09-27 18:27:21
我有这个:
<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"})
则返回CCD_ 1。
有人能告诉我如何检查名为Combo
的ComboBoxItem
是否存在于ComboBox
cb
中吗?
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;
}
如果要像在False
1中那样使用Contains
函数,则必须将字符串添加到ComboBox,而不是ComboBoxItems:cb.Items.Add("Combo")
。该字符串将像ComboBoxItem一样显示。
在C#Winform应用程序中,您可以执行以下操作:
//创建一个类似以下的函数
internal static bool CheckCombo(ComboBox.ObjectCollection items, string Search)
{
bool isFound = false;
foreach (var item in items)
{
if (item.Equals(Search))
{
isFound = true; break;
}
}
return isFound;
}
当将您的项目添加到组合框时,您可以调用这样的函数
if (!Functions.CheckCombo(Combobox.Items, "ValueToSearch"))
{
//Adding the value if is not found in the combobox
Combobox.Items.Add("ValueToSearch");
}