Xamarin.ios 如何将DateTime属性绑定到viewmodel?

Xamarin.ios 如何将DateTime属性绑定到viewmodel?,xamarin.ios,mvvmcross,Xamarin.ios,Mvvmcross,我有一个DateTime类型的属性,我想将其绑定到viewmodel。当我绑定属性时,我得到一个错误,指出绑定类型必须是引用类型。如何将此属性绑定到viewmodel并通知其更改 具体而言,导致编译器错误的代码如下所示: set.Bind(StartDate).To(vm=>vm.StartDate) 这是视图上的属性 publicstaticdatetime StartDate{get;set;}流畅绑定的一般模式是: set.Bind (target).For(v => v.Targe

我有一个DateTime类型的属性,我想将其绑定到viewmodel。当我绑定属性时,我得到一个错误,指出绑定类型必须是引用类型。如何将此属性绑定到viewmodel并通知其更改

具体而言,导致编译器错误的代码如下所示:

set.Bind(StartDate).To(vm=>vm.StartDate)

这是视图上的属性


publicstaticdatetime StartDate{get;set;}

流畅绑定的一般模式是:

set.Bind (target).For(v => v.TargetProperty).To (vm => vm.SourceProperty);
这会将
target
TargetProperty
绑定到源数据上下文(通常是ViewModel)的
SourceProperty

当省略
时,MvvmCross将查找默认属性

在代码中,您试图将当前
StartDate
的默认属性绑定到ViewModel的
StartDate
。我怀疑你想要的是:

set.Bind(this).For(v => v.StartDate).To(vm => vm.StartDate);

有关流畅数据绑定语法的更多信息,请参见wiki

这是一个非常好的第一个问题!您可能希望包含无法帮助回答者的特定代码。你也可以考虑用特定的显示技术和语言来标记这一点,如果没有额外的可视性(到目前为止你只有3个视图)。谢谢你响应斯图亚特。尽管这不起作用。我遇到编译器错误“无法将'lambda expression'转换为非委托类型'string'”。您可以编辑您的问题以显示您试图绑定的视图属性是什么吗?抱歉,我想在我的描述中很容易遗漏它,而不是代码。我还尝试了:
set.Bind(this.For(“StartDate”).To(vm=>vm.StartDate)但它似乎没有在视图模型上触发setter。感谢您编辑您的问题。。。这让问题变得很明显-你已经尝试绑定到一个
静态
属性-你不能-你只能绑定到实例属性。对于双向,请看一下如何进行自定义绑定-这些可以通过基于约定的命名(如中)自动完成-或者可以使用完整的自定义绑定代码(如N=28视频中)完成。这个答案--有一些很好的信息。对于您的示例,我认为自动使用基于视图的
事件将是最简单的。