由于我的用户界面通常需要本地化字符串,因此我的视图模型提供所有视图所需的字符串,包括按钮上的标题。
在iOS端,按钮标题是通过SetTitle方法设置的。
为了使视图模型字符串=>按钮标题映射正常工作,MvvmCross进行了一些神奇的绑定转换以使其能够良好地运行。
假设我在视图中有一个名为Foo的UIButton,并且我想将其标题映射到我的视图模型中的ButtonLabel属性。我知道以下内容可以用于设置这样的绑定:
this.AddBindings(new Dictionary<object, string>() {
{Foo, "Title ButtonTitle"}
});
是否可以使用MvvmCross中的Fluent Binding系统设置相同的绑定?我一直在阅读MvvmCross源代码,但并没有完全理解绑定代码。
以下内容不起作用(因为实际上按钮没有Title属性 - 它有一个SetTitle方法):
var set = this.CreateBindingSet<FooView, FooViewModel>();
set.Bind(Foo).For(b => b.Title).To(vm => vm.ButtonTitle);
set.Apply();
使用Fluent Bindings还有其他实现期望结果的方式吗?