0
私は以下のUIを持っており、ユーザーがクリックするとジェンダーリストを表示します。MVVMCrossのスピナーの問題
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);
}
}
'Model.Persons.Where(x => x.PId(" 12 ")。FirstOrDefault()。Gender' return?これは可能ですか?この値は "女性"ですか?つまり、スピナーは、ユーザーが選択したものに関係なく、選択された性別として常に「女性」を表示します。 – Plac3Hold3r
はい "女性"を返しますが、それはちょうど得ていますか?私はスピナーを "Male"にしようとしています。ローカルデータベースには個人情報が格納されており、そのメソッドを呼び出してジェンダーの初期値を探します。つまり、変更または設定する前に、対応するジェンダー値を取得しようとしています。 – hotspring
Spinner for Genderを使用する代わりに、代わりにラジオ・グループを使用するのはなぜですか?私はより直感的であることがわかります、また、 "他の"オプションを追加することを忘れないでください。 @ PlaceHold3rが示唆しているように、getterの中にあるモデルから 'a'が返ってきたときは、常にあなたの問題です。 – Cheesebaron