Привязка команды BackButtonBehavior оболочки не работает в UWP

#xamarin #xamarin.forms #uwp #xamarin.uwp #xamarin.shell

#xamarin #xamarin.forms #uwp #xamarin.uwp #xamarin.shell

Вопрос:

Я новичок в разработке Xamarin. Я попытался изменить поведение кнопки возврата с помощью команды привязки, но, похоже, это не сработало. Это код для представления:

 <Shell.BackButtonBehavior>
    <BackButtonBehavior Command="{Binding GoBack}"/>
</Shell.BackButtonBehavior>
 

И это код для модели представления:

 public CreatePasswordVM()
{
    _goBack = new Command(GoBackButton);
}
private ICommand _goBack;
public ICommand GoBack
{
    get { return _goBack; }
}
public async void GoBackButton()
{
    await Shell.Current.GoToAsync("../..");
}
 

Когда я нажал кнопку «Назад», метод «GoBackButton» не вызывался. Я хочу упомянуть, что на Android работает.

Комментарии:

1. Отсутствует BindingContext? Проверьте это обсуждение . Образец в документах , кстати, не использовал mvvm.

2. Нет, BindingContext не отсутствует… Есть ли проблема в том, что я использовал mvvm?

3. @himynameisgarch, я мог бы воспроизвести вашу проблему, причина в том, что BackButtonBehavior не был реализован для платформы uwp. Я опубликовал исходный код ниже, пожалуйста, взгляните.

4. @NicoZhu-MSFT Я видел это, я уже создал проблему в Xamarin Forms github! Спасибо!

Ответ №1:

Привязка команды BackButtonBehavior оболочки не работает в UWP

Выводится из исходного кода формы Xamarin. BackButtonBehavior не реализовано для платформы UWP, мы могли бы найти реализацию для Android и IOS здесь и здесь. Но для uwp нет такого трекера, и в UWP нет такого значения ShellRenderer . Для этого сценария мы рекомендуем вам опубликовать запрос на новую функцию в формах Xamarin на github.