Navigation.PopModalAsync() 在 ViewModel ArgumentOutOfRangeException

Navigation.PopModalAsync() in ViewModel ArgumentOutOfRangeException

我正在尝试在用户生日那天向他们显示生日消息。我在他们使用这个登录后立即打开页面。

protected override async void OnDisappearing()
{
    await Navigation.PushModalAsync(new BirthdayPage(Navigation));
}

然后,在 BirthdayPageViewModel 中,我尝试将命令设置为 Navigation.PopModalAsync(),以便在单击关闭按钮时关闭页面。

CloseBirthdayPageCommand = new Command(async () => await navigation.PopModalAsync());

出于某种原因,当我这样做时,它抛出一个 ArgumentOutOfRangeException 而不是关闭我的 BirthdayPage。

我觉得这很奇怪,因为我可以将 OnDisappearing 方法更改为此,它会很好地关闭它。

protected override async void OnDisappearing()
{
    await Navigation.PushModalAsync(new BirthdayPage(Navigation));
    await Navigation.PopModalAsync();
}

当然这可行,但我希望用户能够通过单击按钮关闭页面。非常感谢任何建议。

我可以通过将我的 BirthdayPageViewModel 命令行切换到这个来实现它

CloseBirthdayPageCommand = new Command(async () => await App.Current.MainPage.Navigation.PopModalAsync());