combobox tostring () возвращает объект вместо значения - PullRequest
0 голосов
/ 23 апреля 2019

Я хочу получить строковое значение, выбранное в поле со списком, и преобразовать его в целое число, однако метод SelectedItem всегда возвращает имя объекта. В других сообщениях предлагается использовать свойство Content для SelectedItem, но оно недоступно для меня в vs2017 с использованием .net 4.6.1. Может ли кто-нибудь помочь мне получить значение без разбора строки?

Вот Xaml, за которым следует файл cs:

<ComboBox x:Name="Combo_BaudRate" SelectedValuePath="Content" 
          HorizontalAlignment="Left" VerticalAlignment="Top" 
          Width="120" Margin="112,81,0,0" 
          SelectionChanged="ComboBox_SelectionChanged" 
          IsReadOnly="True" >

        <ComboBoxItem Content="1200" />
        <ComboBoxItem Content="2400" />
        <ComboBoxItem Content="4800" />
        <ComboBoxItem Content="9600" />
        <ComboBoxItem Content="38400" />

</ComboBox>


private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    Selected_Port_Baudrate = Combo_BaudRate.SelectedItem.ToString(); 
}

1 Ответ

1 голос
/ 23 апреля 2019

SelectedItem вкл. ComboBox возврат первого выбранного ComboBoxItem.

Вы хотите получить значение свойства выбранного элемента, а не самого элемента.Поэтому вам следует использовать SelectedValue в сочетании с SelectedValuePath, чтобы связать значение свойства и преобразовать его в соответствующий тип:

int selectedBaudRate = int.Parse(Combo_BaudRate.SelectedValue.ToString());

Обратите внимание, чтобазовый тип SelectedValue равен string, поскольку вы указали свойство ComboBoxItem Content в качестве SelectedValuePath.

Если вы не установите оба параметра SelectedValuePath и SelectedValue,SelectedValue будет содержать тот же объект, что и SelectedItem.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...