我在Android中具有MvvmCross MvxSpinner
绑定(bind)。用户选择一个值,该值会反射(reflect)在我的属性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
的一天中的时间的值来简化用户操作。因此,如果页面是在中午加载的,那么我猜您的选择应该是“午餐”。问题是,我尝试在生命周期的不同位置的
MealTypeSelected
中设置ViewModel
属性:构造函数,Init
和Start
。但是不管我做什么,在加载 View 时,它都会将选择返回更改为Enum的默认值,即值“未指定”。有没有办法解决此问题,并将
MvxSpinner
初始化为特定值? 最佳答案
尝试将其添加到您的“Setup.cs”文件中。我也经历了同样的挣扎,这对我有用。不能记得我第一次找到解决方案的地方。
protected override void FillTargetFactories(IMvxTargetBindingFactoryRegistry registry)
{
MvxAppCompatSetupHelper.FillTargetFactories(registry);
base.FillTargetFactories(registry);
}