数据绑定组合框到文本框

时间:2018-09-10 17:07:05

标签: c# wpf

我一直在使用有关书籍的程序,它的工作方式就像放一些关于书籍的信息,并在完成后将其添加到列表中。 但是当我在组合框(示例03)中选择一个内容时,它将作为“ System.Windows.Controls.ComboBoxItem:03”绑定到我的文本框中。 我只是不知道如何使它3并删除system.windows.etc 这是我的代码顺便说一句

<TextBox Grid.Row="5" Grid.Column="3" Name="monthp" Margin="1" Text="{Binding book_datepublishedmonth,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" />  
<ComboBox Grid.Row="4" Grid.Column="3" Name="monthcombo" Margin="1" SelectedItem="{Binding Text , ElementName=monthp }"  >
<ComboBoxItem Content="01" />
<ComboBoxItem Content="02" /> 
<ComboBoxItem Content="03" />
</ComboBox>

当我运行代码时,我真的不知道为什么它在文本框中有System.Windows.Controls.ComboBoxItem。我缺少什么吗?

在此先感谢您指出:)

1 个答案:

答案 0 :(得分:2)

说明:

您正在将字符串(monthp TextBox.Text 绑定)与 ComboBoxItem 进行比较/绑定。

您要比较/绑定 ComboBoxItem.Content 和monthp TextBox.Text

您必须在ComboBox上进行两项更改:

  

添加 SelectedValuePath =“ Content”

     

然后更改:

     

SelectedItem =“ {绑定文本,ElementName = monthp}”

     

收件人:

     

SelectedValue =“ {绑定文本,ElementName = monthp}”

您的代码将是:

<TextBox Grid.Row="5" Grid.Column="3" Name="monthp" Margin="1" Text="{Binding book_datepublishedmonth, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
<ComboBox Grid.Row="4" Grid.Column="3" Name="monthcombo" Margin="1" SelectedValuePath="Content" SelectedValue="{Binding Text, ElementName=monthp}"  >
    <ComboBoxItem Content="01" />
    <ComboBoxItem Content="02" />
    <ComboBoxItem Content="03" />
</ComboBox>