2014-10-07 57 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

相关问题