查找组合框中某项内容的索引

查找组合框中某项内容的索引

问题描述:

如何从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 MaterialDesignFloatingHintComboBox}" materialDesign:HintAssist.Hint="الجنس" HorizontalContentAlignment="Left" Height="45" VerticalContentAlignment="Bottom"> 
     <ComboBoxItem Content="ذكر"/> 
     <ComboBoxItem Content="أنثى"/> 
</ComboBox> 
+0

'ComboBox'有一个名为'SelectedItem'的属性,你可以绑定来查看。它会给你你想要使用的实际项目。 – XAMlMAX

+0

你是否将ComboBox的ItemsSource设置为? – mm8

+0

@ mm8组合框项目已添加到XAML中。 –

Items收集ComboBox包含ComboBoxItems,所以你需要得到相应的ComboBoxItem元素的索引。试试这个:

var comboBoxItem = sexCombo.Items.OfType<ComboBoxItem>().FirstOrDefault(x => x.Content.ToString() == teacherInfo["sex"].ToString()); 
int index = sexCombo.SelectedIndex = sexCombo.Items.IndexOf(comboBoxItem); 
+0

现在它可以工作,但为什么我从来没有读过'combobox'项目是'ComboBoxItem'类型? –

+0

您可以添加任何您想要的项目,但添加了C​​omboBoxItems的XAML中。 – mm8

+0

好的,我现在明白了。 –