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进行绑定。

MVVMCross,FieldBinding插件,iOS,代码绑定不';不起作用

请告知,如何使用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:/如果你能让一些东西正常可靠地工作,那么我也很乐意接受它作为拉取请求返回到框架中。