Как я получаю текстовое значение от ComboBox в WPF?

Это может быть чем-то застрахованным в 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# и ООП.

7
задан itowlson 27 February 2010 в 19:41
поделиться

1 ответ

Похоже, у вас есть 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);
14
ответ дан 6 December 2019 в 14:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: