ProgressHUD和TouchUpInside

Lui*_*ese 5 c# xamarin.ios ios mbprogresshud mvvmcross

我有我的ViewController

public partial class TestView
        : MvxViewController
{
...code here...
}
Run Code Online (Sandbox Code Playgroud)

我在按钮事件TouchUpInside上加载我的下一个ViewController,如下所示:

btnSearch.TouchUpInside  += (object sender, EventArgs e) => {
        BTProgressHUD.Show("test");
        ViewModel.GoParameterizedCommand.Execute(null);
    };
Run Code Online (Sandbox Code Playgroud)

它在ViewDidLoad中定义的那个事件.我在下一个ViewController上显示的"测试"消息,而不是在加载这个消息时.我怎么能在加载过程中显示该消息,而不是在下一个ViewController加载时?我也尝试过使用MBProgressHUD

btnSearch.TouchUpInside  += (object sender, EventArgs e) => {
        var hud = new MTMBProgressHUD (View) {
            LabelText = "Waiting...",
            RemoveFromSuperViewOnHide = true
        };


        View.AddSubview(hud);
        hud.Show (animated: true);

        ViewModel.GoParameterizedCommand.Execute(null);
    };
Run Code Online (Sandbox Code Playgroud)

但行为也一样.

ole*_*.le 2

看来您正在尝试在视图层中使用 ProgressHUD。在 MVVM 方式中,您应该在 ViewModel 中创建一个“Loading”属性并将其绑定到 View 中的进度条。

这是斯图尔特的一个很好的视频,说明如何做到这一点:http://youtu.be/6fNXGErr9to

这是示例代码:https://github.com/MvvmCross/NPlus1DaysOfMvvmCross/tree/master/N-34-Progress