如何将ComboBox的SelectedValue属性绑定到字符串属性?

时间:2011-07-13 13:13:10

标签: c# silverlight-4.0 binding silverlight-toolkit

我有一个来自Silverlight Toolkit的DataForm控件,在其中我有一个ComboBox字段。组合框的选定值应该绑定到我的IEditable类的一个属性,以便例如“H.S.”时如果选中,我的财产的价值变为H.S.但是,绑定会将my属性的值更改为System.Windows.Controls.ComboBoxItem。如果我使用SelectedItem属性,结果是相同的,正如stackoverflow上的一些其他类似问题所建议的那样。我应该如何将ComboBox的SelectedValue属性绑定到我的其他属性?这是我的XAML(ItemSource在C#代码的页面构造函数中设置):

 <toolkit:DataForm  
                    Name="dataForm" 
                    ItemsSource="{Binding}"  
                    AutoGenerateFields="False"
                    Margin="150, 0, 150, 0"
                    CommitButtonContent="Next"
                    CancelButtonContent="Clear"
                    CommandButtonsVisibility="Commit, Cancel">
                    <StackPanel>
                         <toolkit:DataField LabelPosition="Top">
                            <ComboBox SelectedValue="{Binding Degree, Mode=TwoWay}">
                                <ComboBoxItem Content="H.S." />
                                <ComboBoxItem Content="B.S./B.A." />
                                <ComboBoxItem Content="M.S./M.A." />
                                <ComboBoxItem Content="Ph. D." />
                                <ComboBoxItem Content="M.D." />
                            </ComboBox>
                        </toolkit:DataField>
                    </StackPanel>
</toolkit:DataForm>

提前致谢。

1 个答案:

答案 0 :(得分:4)

查看本文以获取所有ComboBox控件属性的详细说明:http://johnpapa.net/binding-to-silverlight-combobox-and-using-selectedvalue-selectedvaluepath-and-displaymemberpath

尝试将SelectedValuePath属性设置为内容,例如:

<ComboBox SelectedValue="{Binding Degree, Mode=TwoWay}" SelectedValuePath="Content">     
 <ComboBoxItem Content="H.S." />
 <ComboBoxItem Content="B.S./B.A." />
 <ComboBoxItem Content="M.S./M.A." />  
 <ComboBoxItem Content="Ph. D." /> 
 <ComboBoxItem Content="M.D." />
</ComboBox>