我想检索在组合框中选择的字符串值并将其转换为整数,但是SelectedItem方法始终返回对象的名称。其他帖子建议使用SelectedItem的Content属性,但在使用.net 4.6.1的vs2017中我不可用。有人可以在不解析字符串的情况下帮助我获取值吗?
这是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();
}
答案 0 :(得分:1)
SelectedItem
上的 ComboBox
返回第一个选定的ComboBoxItem
。
您要获取所选项目的属性值,而不是项目本身。因此,您应该结合使用SelectedValue
和SelectedValuePath
来绑定属性值并将其转换为适当的类型:
int selectedBaudRate = int.Parse(Combo_BaudRate.SelectedValue.ToString());
请注意,SelectedValue
的基础类型为string
,因为您将ComboBoxItem
属性Content
指定为SelectedValuePath
。
如果您未同时设置SelectedValuePath
和SelectedValue
,则SelectedValue
将包含与SelectedItem
相同的对象。