我在我的一个视图中的'time only'模式中使用iOS UIDatepicker(weekendOnTimepick),每当Picker视图发生更改时,需要更新Viewmodel中的属性。方向Viewmodel =>视图仅在View加载时很重要,因此在绑定之外处理(请参阅下面的代码)。 虽然这很有效(在克服iOS时间本地化的挑战之后),但我得到一条消息“MvxBind:错误:86.61在绑定执行期间看到的问题,为TimerOnWeekend绑定时间 - 问题ArgumentException:对象类型System.DateTime无法转换为目标类型:MonoTouch.Foundation.NSDate“ 我想这与我没有使用的绑定方向有关,似乎不是问题,但我担心它会给我的应用带来某种不稳定性。
问题:这是实现上述目标的正确方法,还是更好的例如完全沟通绑定并使用View to Viewmodel订阅消息与每个Datepicker更新?
public override void ViewDidLoad ()
{
base.ViewDidLoad ();
_userSettings = Mvx.Resolve<IHpRepository>().HpFullData.UserSettings;
var set = this.CreateBindingSet<TimerView, TimerViewModel>();
// TODO: check timepicker binding
set.Bind(weekendOnTimepick).For("Time").To(vm => vm.TimerOnWeekend);
int weekendOnHr = _userSettings.TimerOnWeekend / 3600 ;
int weekendOnMin = (_userSettings.TimerOnWeekend % 3600) / 60;
var weekendOnTime = new DateTime (2014, 1, 1, weekendOnHr, weekendOnMin, 0);
var AdjweekendOnTime = weekendOnTime.ToUniversalTime ();
weekendOnTimepick.SetDate (TouchConverter.DateTimeToNSDate(AdjweekendOnTime),true);
set.Apply();
}