有没有办法用MVVMCross在iOS中实现方法绑定?
我在视频或教程中看不到这种绑定的示例...

ImageNavigationViewModel:

    public void NavigateLeft()
    {
        if (!this.HasLeftSisters.Value)
        {
            return;
        }

        this.currentNodeIndex--;
        this.Update();
    }


ImageNavigationView:

private UIButton navigateLeftButton;
...

var set = this.CreateBindingSet<ImageNavigationView, ImageNavigationViewModel>();
set.Bind(this.navigateLeftButton).To(vm => vm.NavigateLeft);


我有一个编译时错误,因为它期望一个对象(ICommand)。

我也尝试过这个:

set.Bind(this.navigateLeftButton).To("NavigateLeft");


并发生运行时错误:无法为NavigateLeft绑定TouchUpInside创建目标绑定。

我最终在视图模型中添加了ICommand,这有点令人失望,因为我只是在Android中找到“方法绑定”。

最佳答案

里约方法绑定在iOS中可用

https://www.youtube.com/watch?v=8-5XQlcVj2Y中用鳕鱼样本https://github.com/MvvmCross/NPlus1DaysOfMvvmCross/blob/master/N-36-Rio/BindMe.Touch/Views/FirstView.cs#L58进行了演示

您的电话:

  set.Bind(this.navigateLeftButton).To("NavigateLeft");


应该可以工作-但您需要将方法绑定插件添加到Touch UI项目中才能启用此扩展。

10-04 23:33
查看更多