#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.