如何将组合框的SelectedValue属性绑定到字符串属性

本文关键字:属性 绑定 字符串 SelectedValue 组合 | 更新日期: 2023-09-27 18:02:03

我有一个来自Silverlight工具包的DataForm控件,并且在其中我有一个ComboBox字段。组合框的选定值应该绑定到我的IEditable类的一个属性上,这样,当例如"H.S."被选中时,我的属性的值就变成H.S.。然而,绑定将我的属性的值更改为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>

如何将组合框的SelectedValue属性绑定到字符串属性

查看这篇文章,了解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>