在Xamarin.iOS上使用Mvvm-Light设置命令后,是否可以断开命令

时间:2018-04-10 18:18:40

标签: ios xamarin.ios mvvm-light

我正在使用Mvvm-Light创建与UIButton扩展名为SetCommand的绑定。我可以在ViewDidLoad(...)中调用它,但我希望在ViewWillAppear(...)中将其连接并在ViewWillDisappear(...)中将其断开,就像我对其余绑定一样。因此,只有在视图可见时,所有绑定才会处于活动状态。如果我这样做,那么每次我导航回到视图时都会调用SetCommandRelayCommand会多次触发,每次调用SetCommand一次。

这可能吗?如果没有,那为什么不呢?

1 个答案:

答案 0 :(得分:1)

  

为什么要断开命令?

如果UIViewController消失了,他的所有控件都无法触及和看到。所以命令只会在它再次出现时触发,我认为这已经符合您的要求。

如果您确实想要在事件ViewWillDisappear()中删除此命令,则可以使用:

button.RemoveTarget(null, null, UIControlEvent.AllEvents);

这将删除按钮所具有的所有事件。正如您在事件SetCommand()中再次ViewWillAppear()时所说,RelayCommand只会被调用一次。