Моя кнопка для открытия страницы не будет работать.Использование Xamarin (C #, XAML) и реструктуризация проекта в MVVM - PullRequest
1 голос
/ 10 марта 2019

Я только что реструктурировал свой проект Xamarin в MVVM, используя руководство Эдуардо Росаса о Xamarin. Я не могу заставить кнопку «Начать» работать на первой странице, запущенной эмулятором Android. Это выглядит правильно, в соответствии с тем, что сделал Эдуардо. Вот XAML для «целевой страницы» (первая страница, загруженная приложением).

XAML

XAML для открытия страницы (Landing Page)

Вот код для кода целевой страницы (первая страница в приложении):

Код позади

введите описание изображения здесь

Вот модель вида для целевой страницы:

ПРОСМОТР МОДЕЛИ ДЛЯ ПОСАДКИ введите описание изображения здесь

Вот ICommand для PickFromThreePageCommand.cs, вызывающий Begin_Button_tapped:

ICommand

введите описание изображения здесь

PickFromThreePage имеет три кнопки и является страницей, по которой перемещается Begin_Button_Tapped. Когда я запускаю приложение на своем эмуляторе Android, появляется LandingPage, и я нажимаю кнопку «Начать», и он показывает искажение, как будто он знает, что его коснулись, но не переходит на следующую страницу ... PickFromThreePage. Ниже приведен выбор эмулятора:

введите описание изображения здесь

Вот выбор PickFromThreePageVM просто для хорошей меры:

введите описание изображения здесь

EDIT: В моем Begin_Button_Taped () не было «асинхронного» и «ожидающего» для навигации. Это все еще не работает, но я думал, что добавлю это.

1 Ответ

0 голосов
/ 10 марта 2019

Прежде всего, никогда не размещайте свой код в виде изображений.

Давайте начнем. Итак, ваш код и XAML в порядке, подходя к вашей модели представления. Я полагаю, что вы делаете ее слишком сложной без причины, ваша кнопка ICommand должна выглядеть примерно так: (все это должно быть в вашей виртуальной машине)

  Public ICommand PickFromThreePageCommand {get; set;}

Затем в вашем конструкторе инициализируйте его:

   public LandingPageVM
  {
      PickFromThreePageCommand= new Command(PickFromThreePage)
  }

А затем определите метод примерно так:

    private void PickFromThreePage(object obj)
   {
              // Click event code
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...