【问题标题】:MVVMCross iOS static cell command bindingMVVMCross iOS 静态单元格命令绑定
【发布时间】:2016-05-19 10:58:42
【问题描述】:

我正在使用 MVVMCross 开发一个应用程序,它使用故事板作为 UI。在情节提要中,我有一个 UITableView,其中包含静态单元格。如何将 ICommand(或 IMvxCommand)绑定到单击或触摸静态单元格?

目前我正在使用 UITapGestureRecognizer,但我认为这不是最合适的方式。

tableViewController.StaticCell.AddGestureRecognizer(new UITapGestureRecognizer(() =>
{
    if (ViewModel.SomeCommand.CanExecute())
    {
        ViewModel.SomeCommand.Execute(null);
    }
}));

【问题讨论】:

    标签: xamarin xamarin.ios mvvmcross


    【解决方案1】:

    您可以将 Tap 直接绑定到命令:

    using MvvmCross.Binding.iOS.Views.Gestures;
    
    set.Bind(this.SomeView.Tap()).For(vm => vm.Command)
    

    【讨论】:

    • 谢谢!你给我指明了正确的方向!您的代码中有一些小错误。这对我有用:set.Bind(view.SomeView).For("Tap").To(vm => vm.Command)
    • .Tap() 仅适用于正确的using
    【解决方案2】:

    你可以像这样使用 Tap():

    set.Bind(myView.Tap()).For(v=>v.Command).To(vm => vm.myViewModelCommand);
    

    【讨论】: