Xamarin Forms MvvmCross 绑定一个按钮命令出错

Xamarin Forms MvvmCross binding a button command error

我正在处理 Xamarin Forms MvvmCross 项目。我将视图上的通用按钮命令与视图模型上的 IMvxAsyncCommand 绑定在一起,如下所示:

任何事情似乎都可以正常工作,但很少有时在按下按钮后它会变得禁用。会发生什么?如果我使用 Command 代替 MvxAsyncCommand,则不会发生这种情况,如下所示:

public Command TestAsyncCommand => new Command(async () => await TestAsyncCommandMethod());

注意:TestAsyncCommandMethod 完全封装在 try-catch 块中以避免可能的异常。

我认为你在这里做错的是,而不是创建一个 属性 来绑定你正在使用的视图和视图模型,你可以试试这个:

public IMvxAsyncCommand TestAsyncCommand {get; set;}

然后在您的构造函数中执行此操作:

public TestViewModel(IMvxLogProvider logProvider, IMvxNavigationService navigationService)
        : base(logProvider, navigation)
    {
      TestAsyncCommand = new MvxAsyncCommand(async () => await TestAsyncCommandMethod());
    }

更新

这似乎是 MvvmCross 的一个错误! 可以在添加的 link

中找到问题

https://github.com/MvvmCross/MvvmCross/issues/1589