2014-10-07 73 views
1

我有一個類型爲字符串的邊框顏色視圖模型的屬性,我嘗試將其綁定到UIView.Layer.BorderColor,這裏的綁定語法時才:MvvmCross - 如何將UIView.Layer.AnyProperty(Xamarin.iOS)綁定到viewmodel上的屬性?

set.Bind (this.MyUIView).For ("Layer.BorderColor").To (t => t.BorderColor).WithConversion (new StringToColorConverter { ToCGColor = true }); 

它不工作,但是,如果我說直接在UIView上綁定到BackgroundColor屬性,它就像一個魅力。任何人都知道MvvmCross是否支持綁定到Layer屬性?

我嘗試了目標路徑的不同變化,如「Layer.BorderColor」,並強烈類型t => Layer.BorderColor,沒有運氣。

回答

1

從流利結合語法的描述在https://github.com/MvvmCross/MvvmCross/wiki/Databinding#fluent

的流利語法提供一個C#的方式來創建綁定。

此語法通常使用CreateBindingSet助手完成。

該語法包括:

 Bind($ViewObject$) 

其中$ $的ViewObject是視圖靶結合。

 For(v => v.$ViewProperty$) 

其中$ ViewProperty $是綁定視圖上的屬性。

所以...你可以嘗試使用:

 set.Bind (this.MyUIView.Layer).For ("BorderColor")... 

這應該工作,只要沒有人改變了Layer本身 - 如果你需要更復雜的比綁定,那麼你需要創建自定義綁定(請參閱N + 1系列中的示例)。

+0

這個效果很好,謝謝! – pwlodek 2014-10-07 15:47:23

相關問題