Не работает привязка к 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 без лишних манипуляций?


Ответы (0 шт):