Это может быть чем-то застрахованным в C# 101, но я не смог найти, что легкое понимает ответ на этот вопрос где угодно на Google или переполнении стека. Существует ли лучший способ возвратить текстовое значение от поля комбинированного списка, не используя эту дрянную работу вокруг, я придумал?
private void test_site_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
string cmbvalue = "";
cmbvalue = this.test_site.SelectedValue.ToString();
string[] cmbvalues = cmbvalue.Split(new char[] { ' ' });
MessageBox.Show(cmbvalues[1]);
}
Не снабжайте направляющими на мне к твердому, я действительно сейчас беру c# и ООП.
Похоже, у вас есть ComboBoxItems в вашем ComboBox, поэтому SelectedValue возвращает ComboBoxItem, а ToString поэтому возвращает что-то вроде ComboBox SomeValue
.
В этом случае вы можете получить контент с помощью ComboBoxItem.Content:
ComboBoxItem selectedItem = (ComboBoxItem)(test_site.SelectedValue);
string value = (string)(selectedItem.Content);
Однако лучше вместо заполнения ComboBox коллекцией ComboBoxItems установить ComboBox.ItemsSource на желаемую коллекцию строк. :
test_site.ItemsSource = new string[] { "Alice", "Bob", "Carol" };
Затем SelectedItem напрямую доставит вам текущую выбранную строку.
string selectedItem = (string)(test_site.SelectedItem);