Wpf 在组合框中查找项的索引
如何从组合框中找到值索引?我尝试过这个,但它总是返回-1Wpf 在组合框中查找项的索引,wpf,combobox,Wpf,Combobox,如何从组合框中找到值索引?我尝试过这个,但它总是返回-1 sexCombo.SelectedIndex = sexCombo.Items.IndexOf(teacherInfo["sex"].ToString()); 以下是如何添加组合框项目: <ComboBox x:Name="sexCombo" Margin="5,20,10,0" VerticalAlignment="Top" Width="100" Style="{StaticResource MaterialDesignFlo
sexCombo.SelectedIndex = sexCombo.Items.IndexOf(teacherInfo["sex"].ToString());
以下是如何添加组合框项目:
<ComboBox x:Name="sexCombo" Margin="5,20,10,0" VerticalAlignment="Top" Width="100" Style="{StaticResource MaterialDesignFloatingHintComboBox}" materialDesign:HintAssist.Hint="الجنس" HorizontalContentAlignment="Left" Height="45" VerticalContentAlignment="Bottom">
<ComboBoxItem Content="ذكر"/>
<ComboBoxItem Content="أنثى"/>
</ComboBox>
组合框的项集合包含组合框项
,因此需要获取相应的组合框项
元素的索引。试试这个:
var comboBoxItem = sexCombo.Items.OfType<ComboBoxItem>().FirstOrDefault(x => x.Content.ToString() == teacherInfo["sex"].ToString());
int index = sexCombo.SelectedIndex = sexCombo.Items.IndexOf(comboBoxItem);
var comboBoxItem=sexCombo.Items.OfType().FirstOrDefault(x=>x.Content.ToString()==teacherInfo[“sex”].ToString());
int index=sexCombo.SelectedIndex=sexCombo.Items.IndexOf(comboBoxItem);
要使用combobox.items.indexof,您需要在combobox中放入字符串,如下所示:
<ComboBox x:Name="Combobox1" HorizontalAlignment="Left" Margin="504,8,0,0" VerticalAlignment="Top" Width="120" Height="25">
<System:String>Item1</System:String>
<System:String>Item2</System:String>
<System:String>Item3</System:String>
</ComboBox>
项目1
项目2
项目3
然后,当您使用Combobox1.items.indexof(“Item2”)时,它将返回1。我也遇到了同样的问题。我是这样解决的
For i = 0 To comboBox.Items.Count - 1
If comboBox.Items(i).ToString = "searchString" Then
comboBox.SelectedIndex = i
Exit For
End If
Next i
这将选择您正在搜索的字符串值。组合框
有一个名为SelectedItem
的属性,您可以绑定该属性查看该属性。它将为您提供您想要使用的实际项目。您将ComboBox的ItemsSource设置为什么?@mm8 ComboBox项目是在XAML中添加的。然后发布您的XAML…这些项目的类型当然很重要。@mm8我用请求的XAML更新了我的qquestion。现在它可以工作了,但是为什么我从来没有读到过combobox
项目是ComboBoxItem
的类型?您可以添加任何想要添加的项目,但是在XAML中添加了ComboBoxItems。好的,我现在明白了。