Привязка ComboBox возвращает тип элемента управления поверх SelectedValue
У меня есть ComboBox
:
<ComboBox Grid.Column="1" Grid.Row="9" SelectedValue="{Binding SelectedReason}">
<ComboBoxItem Content="Bug Report" IsSelected="True"/>
<ComboBoxItem Content="Suggestion"/>
<ComboBoxItem Content="Complaint"/>
<ComboBoxItem Content="Other"/>
</ComboBox>
... который связывает с Property
:
private string _selectedReason;
public string SelectedReason
{
get { return _selectedReason; }
set
{
if (_selectedReason == value)
{
return;
}
_selectedReason = value;
OnPropertyChanged("SelectedReason");
}
}
Когда я вывожу value
вместо того, чтобы показывать что-то вроде:
Bug Report
Suggestion
...Я получил:
System.Windows.Controls.ComboBoxItem: Bug Report
System.Windows.Controls.ComboBoxItem: Suggestion
Я пытался с помощью SelectedItem
вместо этого, но результат тот же. Все, что я хочу, это значение, а не тип элемента управления. Есть идеи, что происходит?
1 ответ
Решение
Вы должны установить SelectedValuePath
в Content
:
<ComboBox Grid.Column="1" Grid.Row="9" SelectedValue="{Binding SelectedReason}"
SelectedValuePath="Content">
<ComboBoxItem Content="Bug Report" IsSelected="True"/>
<ComboBoxItem Content="Suggestion"/>
<ComboBoxItem Content="Complaint"/>
<ComboBoxItem Content="Other"/>
</ComboBox>