MvvmCross - 如何UIView.Layer.AnyProperty(Xamarin.iO

2019-09-27 23:57发布

我有一个类型为字符串的边框颜色视图模型的属性,我尝试将其绑定到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,没有运气。

Answer 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系列的例子)。



文章来源: MvvmCross - How to bind UIView.Layer.AnyProperty (Xamarin.iOS) to a property on a viewmodel?