我有这样的xaml:
<ComboBox x:Name="cbProvince1" HorizontalAlignment="Left" Margin="674,481,0,0" VerticalAlignment="Top" Width="236" TabIndex="10">
<ComboBoxItem Content="Alberta"/>
<ComboBoxItem Content="British Columbia"/>
<ComboBoxItem Content="Manitoba"/>
<ComboBoxItem Content="New Brunswick"/>
<ComboBoxItem Content="Newfoundland and Labrador"/>
<ComboBoxItem Content="Nova Scotia"/>
<ComboBoxItem Content="Ontario"/>
<ComboBoxItem Content="Prince Edward Island"/>
<ComboBoxItem Content="Quebec"/>
<ComboBoxItem Content="Saskatchewan"/>
</ComboBox>
当我访问selectedItem到C#时,我无法获得我写的字符串值作为内容
var value = cbProvince1.SelectedItem;
我无法在c#中获得价值。
答案 0 :(得分:3)
您需要引用Content
属性,而不是控件本身。但是,当SelectedItem
返回一个对象时,您可以将其转换为ComboBoxItem
:
string content = ((ComboBoxItem)cbProvince1.SelectedItem).Content.ToString();
答案 1 :(得分:2)
您可以将其设置为ComboBoxItem
数组,然后将string
设为SelectedItem
类型,而不是将您的商品设为string
然后投放其内容。这也适用于Int32
,Double
和其他系统类型。
<ComboBox x:Name="cbProvince1" SelectedIndex="1" ...>
<sys:String>Alberta</sys:String>
<sys:String>British Columbia</sys:String>
<sys:String>Manitoba</sys:String>
<sys:String>New Brunswick</sys:String>
<sys:String>Newfoundland and Labrador</sys:String>
<sys:String>Nova Scotia</sys:String>
<sys:String>Ontario</sys:String>
<sys:String>Prince Edward Island</sys:String>
<sys:String>Quebec</sys:String>
<sys:String>Saskatchewan</sys:String>
</ComboBox>
您需要定义sys
命名空间
的xmlns:SYS = “CLR-命名空间:系统;装配= mscorlib程序”