Я пытаюсь связать ComboBox
с коллекцией:
<ComboBox Margin="4 0 2 0"
ItemsSource="{Binding YAxes}"
SelectedItem="{Binding SelectedYAxis, Mode=TwoWay}"
DisplayMemberPath="AxisTitle"
SelectedValuePath="AxisTitle"/>
Все хорошо, кроме Text
этого ComboBox
. При выборе элемента установщик SelectedYAxis
запускает и уведомляет, что свойство было изменено:
private IAxis _selectedYAxis;
public IAxis SelectedYAxis
{
get => _selectedYAxis;
set
{
_selectedYAxis = value;
OnPropertyChanged(nameof(SelectedYAxis));
}
}
, но текст ComboBox
никогда не изменяется на выбранные элементы AxisTitle
. Как отобразить AxisTitle
из SelectedItem
в виде текста ComboBox
?
UPD : текст никогда не отображается, даже если он установлен явно:
<ComboBox Margin="4 0 2 0"
ItemsSource="{Binding XAxes}"
SelectedItem="{Binding SelectedXAxis, Mode=TwoWay}"
DisplayMemberPath="AxisTitle"
Text="Asdasd"/>
Он не устанавливает текст ComboBox
в «Asdasd».
UPD 2 : я изменил вещи для использования DataTemplate, но это не сработало а также:
<ComboBox Margin="4 0 2 0"
ItemsSource="{Binding YAxes}"
SelectedItem="{Binding SelectedYAxis, Mode=TwoWay}"
ItemTemplate="{StaticResource AxisCBTextTemplate}"/>
и раздел ресурса выше:
<DataTemplate x:Key="AxisCBTextTemplate">
<TextBlock Text="{Binding AxisTitle}"/>
</DataTemplate>
UPD 3 Иллюстрация к тому, что я имею в виду:
![ComboBox text does never update](https://i.stack.imgur.com/JLHB4.png)
Задача отображения некоторого выделенного текста должна быть тривиальной, но с трудностями.