由于我的用户界面通常需要本地化字符串,因此我的视图模型提供了视图使用的所有字符串。这包括按钮上的标题之类的东西。
在 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 实现所需的结果?