我的ViewModel中有一个IMvxAsyncCommand方法来执行服务器调用,并根据结果导航到ViewModel或其他。我不知道为什么,但它禁用了click事件绑定的按钮。
$text =~ s/(\PN),/$1 , /g;
$text =~ s/,(\PN)/ , $1/g;
我尝试将转轮移动到异步方法并使用响应设置全局变量,但我仍然遇到此问题。如果我评论服务调用并只留下navigationService代码,那么按钮就会启用,所以我猜问题就是我在这个方法中调用服务的方式。
答案 0 :(得分:1)
首先,您的代码段无法编译。如果它是一个Property Getter,它会阻塞,直到_service.Register()
完成,这可能不是你想要的。相反,你应该将该调用放入命令并等待它:
private IMvxAsyncCommand _register;
public ICommand Register => _register = _register ?? new MvxAsyncCommand(DoRegisterCommand);
private async Task DoRegisterCommand()
{
var result = await _service.Register();
if (result.Status == SUCCESS)
await _navigationService.Navigate<NextViewModel>();
else
await _navigationService.Navigate<ErrorViewModel>();
}