El View Model o Modelo-Vista-Modelo(MVVM) tiene tres componentes: el modelo, la vista y el modelo vista. Cada uno tiene una finalidad distinta. 

01

La vista conoce el ViewModel y el Modelo conoce el ViewModel, pero el ViewModel aísla la vista del modelo y el model de la vista, por lo que permite la evolución del modelo independientemente de la vista. 

Os lo voy a mostrar con un ejemplo que consiste en un modelo que tendrá un libro con sus características, una vista y un ViewModel en el que ejecutaremos los pasos para que la aplicación funcione. 

1) En primer lugar se crea un proyecto de tipo Cross-Platform(Xamarin Forms) 

02

2) A continuación seleccionaremos una plantilla en blanco, todas las plataformas (Android, IOS, Windows) .NET

03

3) El siguiente paso será crear tres carpetas Models, View y ViewModel sobre el proyecto. 

04

4) Dentro de la carpeta Models crearemos la clase Libro.cs, esta clase contendrá todas las propiedades de Libro, que en este caso son: Titulo, Autor y Género. 

05

5) A continuación en la carpeta ViewModel creamos una clase llamada ModelLibro.cs, esta clase heredara de INotifyPropertyChanged, esta interfaz permite la actualización de los cambios de los elementos sin importar que propiedad sea vinculante. 

06

Creamos dos propiedades extendidas Libro Descripción

07

Creamos un método MostrarDescripción al que llamaremos desde el Command del botón MostrarLibro, para que al pulsar aparezca nuestra descripción. 

08

6)Sobre la carpeta View crearemos un Content Page al que llamaremos LibrosView.xaml. 

09

En el cual crearemos el diseño de la página, es muy importante la comunicación de la vista con el ViewModel y se hace a traves de esta línea: 

xmlns:viewmodelsclr-namespace:ViewModelPost.ViewModels« 

Y a continuación añadimos esto: 

<ContentPage.BindingContext> 

        <viewmodels:ModelLibro/> 

    </ContentPage.BindingContext> 

10
11

7)Por último, tendremos que cambiar en el construnctor del App.xaml.cs, la vista a la que llamaremos para ejecutar el proyecto. 

12

8)Dependiendo de en que plataforma queramos ejecutarlo, habrá que poner el proyecto de cada una como principal, de la siguiente manera: 

13

Apenas se aprecian diferencias entre Android e IOS. 

Estos serían los resultados en Android:

Captura1
Captura

Y estos en IOS:

Captura2
Captura3

Autor: Paula María Bermúdez de la Puente Diéguez

Curso: Microsoft MCSA Web Applications + Microsoft MCSD App Builder + Xamarin

Centro: Tajamar

Año académico: 2018-2019


Código / recursos utilizados / Otros datos de interés:
https://github.com/PaulaBermudez/ViewModel

Leave a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.