有没有办法用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项目中才能启用此扩展。