MVVMCross,FieldBinding插件,iOS,代码绑定不';不起作用
本文关键字:不起作用 代码 FieldBinding 插件 iOS MVVMCross 绑定 | 更新日期: 2023-09-27 18:26:03
我在iOS应用程序中使用MVVMCross/Xamarin。我有ViewModel,其属性定义如下:
public readonly INC<Address> Entity = new NC<Address>();
其中
public class Address
{
public string Line1 { get; set; }
public string Line2 { get; set; }
public string Line3 { get; set; }
//other properties...
}
如果我以这种方式绑定,它会起作用:
set.Bind(Line1Text).To("Entity.Line1").TwoWay();
如果我以这种方式进行绑定,它将不起作用并输出警告(见下文):
set.Bind(Line1Text).To(vm => vm.Entity.Value.Line1).TwoWay();
我得到的错误是没有构造绑定。应用程序输出的警告:
2014-10-08 19:12:15.341 IosTemplate[8442:248933]MvxBind:警告:12.63无法绑定:找不到源属性源属性:地址上的值
请告知,如何用lambda表达式的方式与INC/NC进行绑定。
请告知,如何使用lambda表达式方式与INC/NC进行绑定
Field Binding插件没有提供任何对fluent表达式解析的扩展,因此如果没有额外的工作,这种类型的链式表达式就无法以fluent形式完成。
如果你想扩展fluent绑定表达式的解析方式或绑定的评估方式-为INC添加一些特殊情况-那么我相信这是可以做到的,但这需要一些实验和编码。例如,你可以在https://github.com/MvvmCross/MvvmCross/blob/3.2/Plugins/Cirrious/FieldBinding/Cirrious.MvvmCross.Plugins.FieldBinding/MvxChainedNotifyChangeFieldSourceBinding.cs#L32以便从列表中删除Value
项-尽管这可能偶尔也会删除正确的Value
:/如果你能让一些东西正常可靠地工作,那么我也很乐意接受它作为拉取请求返回到框架中。