Привязка данных Combobox к Textbox - PullRequest
0 голосов
/ 10 сентября 2018

Я работал с моей программой о книгах. Это работает, как поместить некоторую информацию о книге, и когда это будет сделано, она будет добавлена ​​в список.но когда я выбираю содержимое в выпадающем списке (пример 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 голосов
/ 10 сентября 2018

Пояснение:

Вы сравниваете / связываете строку (monthp TextBox.Text Binding) с ComboBoxItem .

Вы хотите сравнить / связать ComboBoxItem.Content с monthp TextBox.Text

Вы должны сделать два изменения в вашем ComboBox:

Добавить SelectedValuePath = "Содержимое"

И изменить:

SelectedItem = "{Binding Text, ElementName = monthp}"

Кому:

SelectedValue = "{Binding Text, 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...