我有一个类型为字符串的边框颜色视图模型的属性,我尝试将其绑定到UIView.Layer.BorderColor,这里的绑定语法时才:
set.Bind (this.MyUIView).For ("Layer.BorderColor").To (t => t.BorderColor).WithConversion (new StringToColorConverter { ToCGColor = true });
它不工作,但是,如果我说的绑定,直接BackgroundColor属性上一个UIView,它就像一个魅力。 任何人都知道,如果绑定到图层属性由MvvmCross支持?
我尝试的目标路径的不同变型,如“Layer.BorderColor”,并且强类型T => Layer.BorderColor,没有运气。
从流畅的绑定语法在描述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系列的例子)。
文章来源: MvvmCross - How to bind UIView.Layer.AnyProperty (Xamarin.iOS) to a property on a viewmodel?