如何将组合框的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>
查看这篇文章,了解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>