2014-10-08 51 views
2

我在iOS应用程序中使用MVVMCross/Xamarin。 我视图模型,像这样定义的属性:MVVMCross,FieldBinding插件,iOS,代码绑定不起作用

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月8日19:12:15.341 IosTemplate [8442:248933] MvxBind:警告: 12.63无法绑定:源属性源未找到性能:在地址

价值

请指教,如何用lambda表达方式与INC/NC进行绑定。

回答

1

请指教,如何做INC/NC绑定与lambda表达式的方式

Field Binding plugin不与任何扩展到流利表达解析所以这类链表达的可以”船没有额外的工作就可以流利地完成。

如果您想要扩展流畅的绑定表达式的解析方式或绑定的评估方式 - 为INC添加一些特殊情况 - 那么我相信这可以完成,但这需要一些实验和编码去做吧。例如,您可以尝试检查并操作https://github.com/MvvmCross/MvvmCross/blob/3.2/Plugins/Cirrious/FieldBinding/Cirrious.MvvmCross.Plugins.FieldBinding/MvxChainedNotifyChangeFieldSourceBinding.cs#L32中的childList,以便从列表中删除Value项目 - 虽然这也可能会删除偶尔正确的Value:/如果您可以使某些工作正常并可靠地工作,那么将非常高兴将其作为拉取请求也纳入框架。

+0

谢谢,@Stuart – 2014-10-09 15:05:07