C# 从组合框检索SelectedItem时出错
我试图检索组合框的选定值,但出现了一个奇怪的问题 我试过:C# 从组合框检索SelectedItem时出错,c#,wpf,combobox,C#,Wpf,Combobox,我试图检索组合框的选定值,但出现了一个奇怪的问题 我试过: myCombo.SelectedItem.ToString()我将返回值: System.Windows.Controls.ComboBoxItem: myValue. 然后我尝试: ComboBoxItem item = ((ComboBoxItem)myCombo.selectedItem); item.content.toString(); 如果所选索引为0或1,则此操作正常。但是,如果选择了任何其他索引,则会显示异常: 未处
myCombo.SelectedItem.ToString()
我将返回值:
System.Windows.Controls.ComboBoxItem: myValue.
然后我尝试:
ComboBoxItem item = ((ComboBoxItem)myCombo.selectedItem);
item.content.toString();
如果所选索引为0或1,则此操作正常。但是,如果选择了任何其他索引,则会显示异常:
未处理InvalidCastException无法处理类型为的case对象
“System.String”以键入“System.Windows.Controls.ComboBoxItem”
索引0和1与其他索引的唯一区别在于,索引0和1是通过XAML手动添加的,而其他索引是通过数据库查询编程添加的,如下所示:
string myValue = reader["my_table_column"].toString();
myCombo.Items.Add(myValue);
谢谢你能提供的帮助
更新
正如Wayne Tanner所要求的,下面是组合框的XAML片段
<ComboBox Height="23" HorizontalAlignment="Left" Margin="26,6,0,0" Name="cboIVRGroup" SelectedIndex="0" VerticalAlignment="Top" Width="143" SelectionChanged="cboIVRGroup_SelectionChanged">
<ComboBoxItem Content="All IVRs" />
<ComboBoxItem Content="Unassigned IVRs" />
</ComboBox>r the combo box
r组合框
您应该能够使用SelectedValue属性来获取实际选定的字符串。通过编程添加的字符串可以像XAML那样添加:
string myValue = reader["my_table_column"].toString();
ComboBoxItem item = new ComboBoxItem();
item.Content = myValue;
myCombo.Items.Add(item);
谢谢你的帮助,但现在这样做与我的问题正好相反。例如,索引0和1获取System.Windows.Controls.ComboBoxItem MyXamItem,而其他索引则获取正确的值。您可以发布XAML的剪报吗?听起来有点不对劲。在XAML中,如果将SelectedValuePath=“Content”添加到ComboBox控件,SelectedValue属性将具有所选项目的实际字符串值。