我在视图模型上有一个名为BorderColor的类型为string的属性,我尝试将其绑定到UIView.Layer.BorderColor,这是绑定sytax:
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,没有运气。
答案 0 :(得分: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系列中的例子)