ComboBox在Windows 8.1或Windows Phone 8.1中选择了项目

时间:2014-11-04 17:17:29

标签: c# windows-8.1 windows-phone-8.1

我有这样的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#中获得价值。

enter image description here

2 个答案:

答案 0 :(得分:3)

您需要引用Content属性,而不是控件本身。但是,当SelectedItem返回一个对象时,您可以将其转换为ComboBoxItem

string content = ((ComboBoxItem)cbProvince1.SelectedItem).Content.ToString();

答案 1 :(得分:2)

您可以将其设置为ComboBoxItem数组,然后将string设为SelectedItem类型,而不是将您的商品设为string然后投放其内容。这也适用于Int32Double和其他系统类型。

<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程序”