获取wpfcombobox选择的值

如何从下面的示例中将所选值(例如Option1 )作为string获取。 我在Google上尝试过很多建议,但无法获得字符串。

XAML:

  Option1 Option2 Option3  

代码隐藏:

 private void selectOption_SelectionChanged(object sender, SelectionChangedEventArgs e) { var selectedValue = selectOption.SelectedValue; } //elsewhere in code var test = viewModel.VMselectedOption; 

selectedValue和test都返回字符串“ System.Windows.Controls.ComboBoxItem:Option1 ”而不是“ Option1

这应该是非常简单但我不能让这个工作或看到什么是错的?

您不应手动插入combobox项目。 使用ItemsSource设置它们。

基本上,您应该创建一个选项列表(或表示选项的对象)并将它们设置为ItemsSource ,这样您的SelectedItem将完全是所选的选项,而不是自动创建的包装ComboboxItem

您应该设置SelectedValuePath =“Content”。

  Option1 Option2 Option3  
 string Value=""; if(myComboBox.SelectedIndex>=0) Value=((ComboBoxItem)myComboBox.SelectedItem).Content.ToString(); 

更新代码以获取comboboxItem的内容。

 var selectedValue = ((ComboBoxItem)selectOption.SelectedItem).Content.ToString(); 

ComboBoxItem.Content的类型为Object,因此您需要自己投射项目。