小编Fra*_*ank的帖子

Fluent Bindings和UIButton标题

由于我的用户界面通常需要具有本地化字符串,因此我的视图模型提供了视图所使用的所有字符串.这包括按钮上的标题等内容.

在iOS端,按钮标题通过SetTitle方法设置.
为了使视图模型string =>按钮标题映射起作用,MvvmCross会进行一些神奇的绑定转换,以使其正常工作.

假设我的视图中有一个名为Foo的UIButton,我想将其标题映射到View Model中的属性ButtonLabel.知道以下工作以设置这样的绑定:

this.AddBindings(new Dictionary<object, string>() {
      {Foo, "Title ButtonTitle"}
 });
Run Code Online (Sandbox Code Playgroud)

可以使用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();
Run Code Online (Sandbox Code Playgroud)

有没有其他方法可以使用Fluent Bindings获得所需的结果?

c# xamarin.ios mvvmcross

11
推荐指数
2
解决办法
4469
查看次数

"无法在MvvmCross .dialog中创建目标绑定"

所以我正在玩iOS中的MvvmCross和Monotouch.Dialog,当我做一些非常微不足道的事情时,我遇到了一个绑定问题 - 实际上在Stuart的n + 1视频中几乎逐字完成.

鉴于以下观点:

[Register("FirstView")]
public class FirstView : MvxDialogViewController
{
    public override void ViewDidLoad()
    {
        base.ViewDidLoad();
        var bindings = this.CreateInlineBindingTarget<FirstViewModel>();

        Root = new RootElement("Example Root")
        {

            new Section("Search")
            {
                new EntryElement("SearchString", "Search String").Bind(bindings, vm => vm.SearchString)
            }
        };

    }
}
Run Code Online (Sandbox Code Playgroud)

和这个ViewModel:

public class FirstViewModel : MvxViewModel
{
    private string _searchString = "search string";
    public string SearchString
    {
        get
        {
            return _searchString;
        }
        set
        {
            _searchString = value; 
            RaisePropertyChanged(() => SearchString);
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

导航到此视图时,我从Mvx收到以下错误:

2013-08-22 14:44:51.766 TestApp[11581:c07] …
Run Code Online (Sandbox Code Playgroud)

ios monotouch.dialog mvvmcross

4
推荐指数
1
解决办法
1520
查看次数

标签 统计

mvvmcross ×2

c# ×1

ios ×1

monotouch.dialog ×1

xamarin.ios ×1