私はAndroidにMvvmCross MvxSpinner
バインディングを持っています。ユーザーが値を選択すると、それが私のプロパティーに反映されますMealTypeSelected
。MvxSpinner初期値
<MvxSpinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
local:MvxBind="ItemsSource MealTypeList;SelectedItem MealTypeSelected, Mode=TwoWay" />
スピナーは、ユーザーが食事の種類(朝食、昼食、夕食など)を選択できるようにします。食事の種類は、MealType
と呼ばれる列挙型で表されます。
public enum MealType {Unspecified, Breakfast, Lunch, Dinner, Snack};
私はViewModel
が示されている時刻に基づいた値にスピナーを初期化することによって、ユーザーにそれを容易にします。だから、正午にページが読み込まれたら、選択は "ランチ"でなければならないと思います。コンストラクタ、Init
、およびStart
:
問題は、私はライフサイクルの異なる場所でViewModel
でMealTypeSelected
プロパティを設定しようとしている、です。しかし、私が何をしているかにかかわらず、Viewがロードされると、選択肢がのEnumのデフォルト値に変更されます。これは値 "Unspecified"です。
この現象が回避され、MvxSpinner
が特定の値に初期化されていますか?
私が思い出したことから、スピナーはItemsSourceの初期値を自動的に選択します。 SpinnerのItemsSourceを初期化して、最初のインデックスを時刻の特定のMealTypeにすることができます。 – pnavk
これでうまくいきましたが、ユーザーがクリックするとスピナーのリストが「ランチ、未指定、朝食、ランチ、ディナー、スナック」になりました。私は明確にするためにいくつかのカスタムレイアウトを行うことができると思うが、それは理想的ではない。 – thedigitalsean