#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; }