我有一个来自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>
提前致谢。
答案 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>