Реализация навигации на основе использования mvvm patterm Xamarin Forms - PullRequest
0 голосов
/ 24 сентября 2018

Мое приложение разрабатывается с использованием шаблона mvvm, и я не уверен, какой шаблон я использую?Некоторые из моделей mvvm существуют как

  • mvvm fresh
  • mvvm light
  • mvvm prizm

и многие другие.Это мой класс mvvm

public class AssignmentDetailViewModel : INotifyPropertyChanged
{
    public ICommand Button1Command { get; set; }
    public AssignmentDetailViewModel()
    {
        Button1Command = new Command(Button1_click);
    }

    private bool _enableButton1;
    public bool EnableButton1
    {
        get { return _enableButton1; }
        set
        {
            _enableButton1 = value;
            OnPropertChanged();
        }
    }
   //This is for page navigations
    private void Button1_click()
    {
        Xamarin.Forms.Application.Current.MainPage.Navigation.PushModalAsync(new AssignmentContent());
        EnableButton1 = true;
    }
}

Как я использую это в xaml

<Button HorizontalOptions="FillAndExpand"  isVisible={Binding EnableButton1} Command="{Binding Button1Command }">

Согласно приведенному выше шаблону, я хочу разработать навигацию по страницам.На данный момент Навигация Я делаю как Button1_click() метод выше.Теперь я хочу, чтобы две точки были очищены

  1. Какой шаблон mvvm это?
  2. Правильно ли я использую навигацию?

Спасибо.

1 Ответ

0 голосов
/ 24 сентября 2018

Вы изучаете платформу Xamarin Forms.Вы используете существующую навигацию на основе форм Xamarin.В настоящее время вы внедряете INotifyPropertyChanged (чтобы уведомлять об изменениях в вашем представлении при изменении вашей модели) во всех моделях / моделях представления.Вы сами связываете контекст связывания для всех страниц, которые у вас есть!Все те библиотеки, на которые вы ссылались, - это библиотеки, которые помогут вам реализовать навигацию, MVVM, IOC и т. Д.

Вы реализуете части функций, которые предоставляют эти библиотеки.Тогда почему вы должны думать о них?Чем больше становятся ваши приложения и чем больше работы вы выполняете вручную для управления многими функциями, которые они предоставляют, - это отнимает много времени.В конце концов, вы хотите использовать все те функции, которые предоставляет некоторые из этих библиотек!

Итак, используя одну из этих библиотек, Вы сэкономите много времени и средств.Обычно все эти библиотеки MVVM предоставляют такие функции, как:

  • IOC
  • Автоматическое связывание ViewModel
  • ViewModel поддерживает события страницы, такие как появление / исчезновение
  • Навигация от ViewModel до ViewModel
  • Встроенный INotifyPropertyChanged в форме BaseViewModel
  • Поддерживает несколько навигаций, таких как навигация MasterDetail, навигация с вкладками и т. Д.

Не знаете, как создать шаблон?Шаблон - это ОБЩИЙ СПОСОБ внедрения Системы.Каждая часть системы следует некоторым общим правилам в отношении имен, доступности, реализации и т. Д. Используя эти библиотеки, вы будете следовать всем / любой системе / правилам / шаблонам, которые они предлагают в форме этой библиотеки.Все они поддерживают MVVM, что означает, что все ваши страницы должны иметь свою ViewModel.Вся ваша логика и данные, относящиеся к этому представлению, должны идти внутри ViewModel, а не смешиваться.

Выбор за вами - использовать эти библиотеки или нет.Но, используя любой из них, вы создадите отличное приложение, которое следует за разделением частей / задач приложения, которое разрабатывается более чистым способом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...