Не работает привязка к SelectedValue в Combobox, который находится в ListView
Если что, работаю с MVVM впервые, так что буду благодарен за подробное разжевывание.
При нажатии кнопки создается новый пустой элемент списка, для которого нужно выбрать значение из Combobox.
Изначально привязка к выбранного значения не работала в принципе, поэтому представляю код, который не понимаю (в SelectedValue), но хоть что-то да происходит.
Присваивание значений для каждого элемента списка из TexBox работает корректно.
<ListView ItemsSource="{Binding QuestionsList}" Margin="0,10,0,10" Background="Transparent">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="Заголовок вопроса*"/>
<TextBox Text="{Binding QuestionTitle}" Width="300" TextWrapping="Wrap" Margin="0,5,0,10"/>
<TextBlock Text="Описание"/>
<TextBox Text="{Binding QuestionDescription}" Width="300" TextWrapping="Wrap" Margin="0,5,0,10"/>
<TextBlock Text="Тип вопроса*"/>
<ComboBox ItemsSource="{Binding DataContext.QuestionTypesList, RelativeSource={RelativeSource AncestorType=ItemsControl}}"
DisplayMemberPath = "QuestionTypeTitle"
SelectedValuePath="QuestionTypeId"
SelectedValue="{Binding DataContext.SelectedQuestionType, Mode=TwoWay, RelativeSource={RelativeSource AncestorType=ListView}}"
Width="300"
Margin="0,5,0,10"/>
<Button Command="{Binding AddNewAnswer}" Content="Добавить ответ" Width="150"/>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Вот свойство в ViewModel страницы.
private int _selectedQuestionType = 1;
public int SelectedQuestionType
{
get => _selectedQuestionType;
set
{
if (_selectedQuestionType != value)
{
_selectedQuestionType = value;
NotifyPropertyChanged(nameof(SelectedQuestionType));
}
}
}
При таком раскладе при изменении значения в Combobox значение меняется для всех элементов списка. При этом в самих объектах списка значение Id выбранного элемента не обновляется и всегда ставится как 0.
Первый вопрос - как сделать так, чтобы значение Combobox выбиралось индивидуально для каждого элемента списка (так же, как происходит с QuestionTitle и QuestionDescription)?
Второй вопрос - как сделать рабочую привязку, чтобы она работала так же, как с QuestionTitle и QuestionDescription без лишних манипуляций?