Практический пример MVVM для Xamarin.Forms? - PullRequest
0 голосов
/ 06 февраля 2019

С тех пор, как я начал изучать Xamarin.Forms, я прочитал, что MVVM является предпочтительной архитектурой для этого.Это все для меня в новинку, поэтому наберитесь терпения.

На работе типичное приложение (asp.net или Windows Forms) будет включать обработчик событий, который вызывает метод и отображает его в элементе управления пользовательского интерфейса:

private void buttonShow_Click(object sender, EventArgs e)
{
    Vendors.Sales carSales = new Vendors.Sales();
    DataTable carsTable = carSales.SalesMade();
    DatagridSales.datasource = carsTable;
}

carSales.SalesMade - это метод, который где-то существует, который возвращает список, который я отображаю в своем пользовательском интерфейсе.Я не знаю, что такое carSales.SalesMade;Я просто знаю, что возвращается datatable.

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

Итак, мой вопрос: как я могу реализовать MVVM в этом примере?Это может быть псевдокод;это не нужно собирать / компилировать.Я просто хочу посмотреть, как это будет выглядеть.

Ответы [ 2 ]

0 голосов
/ 06 февраля 2019

Итак, просто для подробного описания команд и их работы.

Возьмем простой пример кнопки входа в систему.

В вашей ViewModel будет команда для обработки нажатия кнопки входа в систему следующим образом:

public ICommand LoginCommand {get; set;};

Команде требуется действие для вызова при ее запуске.

Итак, в своем конструкторе вы можете инициализировать команду следующим образом:

LoginCommand = new Command(Login);

Действие входа соответствует методу, который вы используете в вашей ViewModel, например:

private void Login()
{
   //do login stuff
}  

Наконец, в вашем View вы привязываете команду к вашему элементу управления, в этом случае кнопка входа:

 <Button x:Name="loginButton" Command="{Binding LoginCommand}" Text="Login" />
0 голосов
/ 06 февраля 2019

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

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