Что происходит, так это то, что проверка происходит до того, как значение будет изменено в зависимости от ввода пользователя. Таким образом, вы хотите основывать проверку на вводе пользователем напрямую
Чтобы сделать это, вместо того, чтобы написать то, что вы написали, вы можете сделать это вместо этого:
public async Task<bool> OnAlertYesNoClicked()
{
return await DisplayAlert("Question?", "Are you sure you want to go back? Your result wont be saved!", "Yes", "No");
}
protected override bool OnBackButtonPressed()
{
if(OnAlertYesNoClicked().Result())
...
Желательно не использовать .Result () для получения ответа но вы не можете изменить OnBackButtonPressed для возврата Task вместо этого.