Xamarin.ios 使用mvvmlight显示网络活动

Xamarin.ios 使用mvvmlight显示网络活动,xamarin.ios,windows-phone-8.1,xamarin.android,mvvm-light,Xamarin.ios,Windows Phone 8.1,Xamarin.android,Mvvm Light,我的头一直撞在这里的墙上 我有一个使用mvvmlight的xamarin应用程序。它接近完成,但有人指出,网络活动微调器并没有在任何平台上显示 了解到这是一个特定于平台的操作,是否有办法绑定触发微调器的按钮,并在从网络活动返回时取消微调器 我确实考虑过一些类似于的事情。 this.BtnDoSomething.SetCommand(Events.Click, () => {startSpinner; this.ViewModel.DoStuff}); 但这不会在完成后调用以移除微调器。我

我的头一直撞在这里的墙上

我有一个使用mvvmlight的xamarin应用程序。它接近完成,但有人指出,网络活动微调器并没有在任何平台上显示

了解到这是一个特定于平台的操作,是否有办法绑定触发微调器的按钮,并在从网络活动返回时取消微调器

我确实考虑过一些类似于

的事情。
this.BtnDoSomething.SetCommand(Events.Click, () => {startSpinner; this.ViewModel.DoStuff});

但这不会在完成后调用以移除微调器。

我没有使用Xamarin,但您不能执行以下操作:

this.BtnDoSomething.SetCommand(Events.Click, () => 
{
    startSpinner(); 
    this.ViewModel.DoStuff(stopSpinner)
});
然后,DoStuff方法将回调作为参数,并在完成后调用它:

public void DoStuff(Action callback)
{
    // Do some asynchronous stuff
    // call callback
    if (callback != null)
    {
         callback();
    }
}

我认为一个更清洁的解决方案应该是这样的:

有一个名为IsBusy的属性 在你开始加载东西之前,你把它设置为true 加载完内容后,立即将其设置为false 在视图中,将可见性绑定到该属性的某种微调器。所有这些行为都应该进入ViewModel,而不是在视图中进行