我有以下用户界面,并在用户点击时显示性别列表。
View.axml
<mvvmcross.droid.support.v7.appcompat.widget.MvxAppCompatSpinner
android:layout_width="80dp"
android:layout_height="match_parent"
local:MvxBind="ItemsSource GenderList; SelectedItem GenderCategory" />
但是在以下相应的ViewController
中,无论用户选择什么,它始终保持初始值。例如,如果微调器显示Female
,即使用户选择Male
,它也会显示Female
。
ViewController.cs
private List<string> _genderList = new List<string>() { "Female", "Male" };
public List<string> GenderList
{
get { return _genderList ; }
set { _genderList = value; RaisePropertyChanged(() => GenderList); }
}
public string GenderCategory
{
get
{
var a = Model.Persons.Where(x => x.PId("12").FirstOrDefault().Gender;
if (a.Equals(Constants.Category.Female))
{
return "Female";
}
else
{
return "Male";
}
}
set
{
if (value.Equals("Female"))
Model.SetGender(Constants.Category.Female, Person.Age);
else {
Model.SetGender(Constants.Category.Male, Person.Age);
}
RaisePropertyChanged(() => Gender);
}
}
答案 0 :(得分:2)
您可以尝试使用支持字段返回用户选择的选项:
string _genderCategory;
public string GenderCategory
{
get
{
return _genderCategory ?? GenderList.FirstOrDefault();
}
set
{
if (value.Equals("Female"))
Model.SetGender(Constants.Category.Female, Person.Age);
else
{
Model.SetGender(Constants.Category.Male, Person.Age);
}
RaisePropertyChanged(() => Gender);
_genderCategory = value;
}
}
已编辑:包含默认选择第一个性别选项