私はこれを持っています:
<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
という名前のCombo
がComboBox
cb
に存在するかどうかを確認する方法を教えてもらえますか?
アイテムはItemCollection
とnot list of strings
。あなたの場合、それはcollection of ComboboxItem
そしてあなたはそのContent
プロパティをチェックする必要があります。
cb.Items.Cast<ComboBoxItem>().Any(cbi => cbi.Content.Equals("Combo"));
OR
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")
のようにContains
関数を使用する場合は、ComboBoxItemsではなくComboBoxに文字列を追加する必要があります:cb.Items.Add("Combo")
。文字列はComboBoxItemのように表示されます。