Как получить текст выбранного элемента через событие selectionchanged в combobox WPF?
Я хочу реализовать общую и простую функцию: в combox получить текст выбранного элемента через пользовательский выбор в ComboBox WPF, но я не смог найти способ сделать это даже после поиска в интернете. Невероятно. Надеюсь, кто-нибудь сможет мне помочь.
код XAML и c# выглядит следующим образом. Я дал комментарии и свой вопрос, а также код. Обратите внимание, что я пробовал аналогичные функции как в MainWindow (), так и в Selectionchanged event. Проблема возникает только в последней функции. Но мне нужно получить выбранный элемент, например "item1", когда я выбираю элемент combox в качестве первого элемента. Но это дает ошибку (см. ниже) при запуске отладки.
как ни странно, код XAML не может быть полностью скопирован сюда. однако вы должны предположить, что код xaml не имеет никаких проблем. она не является полной только из-за редактора здесь.
<ComboBox x:Name="ComBoxTest" Height="50" SelectionChanged="ComBoxTest_SelectionChanged" SelectedValuePath="Content"> <ComboBoxItem IsSelected="True">item1</ComboBoxItem> <ComboBoxItem>item2</ComboBoxItem> </ComboBox>
namespace WPFComboBoxTest { /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); MessageBox.Show(ComBoxTest.SelectedItem.ToString());//System.Windows.Controls.ComboxItem:item1 MessageBox.Show(ComBoxTest.SelectedValue.ToString());//item1 (OK) string text = ((ComboBoxItem)ComBoxTest.SelectedItem).Content.ToString();//item1 (Ok, too) MessageBox.Show(text); } private void ComBoxTest_SelectionChanged(object sender, SelectionChangedEventArgs e) { MessageBox.Show(ComBoxTest.SelectedItem.ToString());//System.Windows.Controls.ComboxItem, only, after starting the programm, no item1, which is selected by default i XAML code. But after starting programm, it shows System.Windows.Controls.ComboxItem:item1 when I select the first item MessageBox.Show(ComBoxTest.SelectedValue.ToString());//problem, when start debugging: an unhandled exception of teyp 'System.Refection.TragetInvocationException' occured. I think this will work if I really hit the ComboBox and select one item. But I have no chance since this error occurs once starting the programm. string text = ((ComboBoxItem)ComBoxTest.SelectedItem).Content.ToString();//same problem MessageBox.Show(text); //my question: how to deal with this problem? } } }
Что я уже пробовал:
пробовал разные способы, selecteditem, selectedvalue, items, ни один не работает.
поиск также в интернете, но он не увенчался успехом.