Как я могу явно получить выбранный элемент списка из выпадающего списка?

#c# #wpf #data-binding

Вопрос:

Я новичок в WPF. Я пытаюсь создать страницу регистрации. В каком выпадающем списке присутствует, чтобы получить запись пола пользователя. Я не передавал список из ViewModel, но я сделал это, сделав ComboBoxItem это . Мне нужно вернуть выбранный вариант в мой viewmodel, чтобы сохранить все в базе данных.

SignUp.xml

 <ComboBox x:Name="gender" IsEditable="True" Margin="10,30,0,0" Width="100" Text="Select Gender" SelectedItem="{Binding SelectedItemInFilter}">
                                    <sys:String>No Selection</sys:String>
                                    <sys:String>Male</sys:String>
                                <sys:String>Female</sys:String>
                                </ComboBox>
 

Модель просмотра не получает никакого удара.
ViewModel.cs

   private ObservableCollection<UserInfoModel> _gender;
        public ObservableCollection<UserInfoModel> Gender
        {
            get
            {
                return _gender;
            }
            set
            {
                _gender = value;
                NotifyPropertyChanged("Persons");
            }
        }
 

Комментарии:

1. Может ли выбранный элемент быть привязан к неправильному свойству?

2. Я не понимаю, о чем вы говорите. Вы спрашиваете, может ли это быть связано с неправильным свойством, верно?

3. правильно, да. Вы указали SelectedItemFilter для свойства. но он показывает гендерный объект в viewmodel. что-то пошло не так?

4. Вы привязаны к SelectedItemInFilter, но показ _gender. Где связь между ними двумя? Установите точку останова в модели представления для набора SelectedItemInFilter и посмотрите, какое значение устанавливается и работает оттуда.

5. Код, который вы показываете, неполон. В XAML есть привязка к SelectedItemInFilter , которая не показана в коде ViewModel. Примечание: Свойство ObservableCollection должно быть доступно только для чтения, например так: public ObservableCollection<Foo> Bar { get; }