【发布时间】:2016-04-01 14:58:21
【问题描述】:
我在 Android 中有一个 MvvmCross MvxSpinner 绑定。用户选择一个值并反映在我的属性MealTypeSelected 中。
<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 的时间的值来使用户更轻松。所以如果页面是在中午加载的,我猜想选择应该是“午餐”。
问题是,我尝试在生命周期的不同位置设置ViewModel 中的MealTypeSelected 属性:构造函数、Init 和Start。但无论我做什么,当视图加载时,它会将选择 back 更改为枚举的默认值,即值“未指定”。
有没有办法解决此问题并将MvxSpinner 初始化为特定值?
【问题讨论】:
-
据我回忆,微调器自动选择其 ItemsSource 中的初始值。您可以为 Spinner 初始化 ItemsSource,使第一个索引成为一天中特定时间的特定 MealType。
-
这有效,但现在我的微调器列表是“午餐,未指定,早餐,午餐,晚餐,小吃”,当用户点击它时。我想我可以做一些自定义布局来澄清,但这并不理想。
标签: xamarin xamarin.android mvvmcross android-spinner