2014-10-08 41 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