Discusión sobre el artículo "Optimización móvil continua (Parte 7): Encajando la parte lógica del optimizador automático con la parte gráfica y el control de la misma desde el programa"

 

Artículo publicado Optimización móvil continua (Parte 7): Encajando la parte lógica del optimizador automático con la parte gráfica y el control de la misma desde el programa:

Este artículo es el penúltimo de la serie, y describe cómo encajar la parte gráfica del programa del optimizador automático con su parte lógica. En él, analizaremos el proceso de inicio y optimización, comenzando por la pulsación del botón y terminando el redireccionamiento al gestor de optimizaciones.

Como hemos dicho más de una vez, ViewModel es la capa encargada de encajar la parte gráfica de la aplicación y la implementación programática de la lógica. En esencia, es una representación programática de la parte gráfica, donde se implementan la invoación de la lógica y la reacción de la parte gráfica a las llamadas de retorno por parte de la lógica de la aplicación. Por consiguiente, a cada campo modificado de la parte gráfica de la aplicación le corresponde una propiedad pública de una parte de ViewModel. Estas propiedades pueden ser tanto getters (lo cual excluye la posibilidad de modificar estas desde el gráfico), como setters (lo cual permite registrar nuevamente el objeto que se oculta tras esta propiedad). Ya hemos analizado detalladamente en los anteriores artículos la tecnología encargada de conectar los datos, por ello, aquí solo mostraremos un par de ejemplos. 

La conexión de los campos de texto se realiza con la ayuda de las propiedades con acceso, tanto para el registro, como para la lectura de datos. Analizaremos como ejemplo el campo en el que se indica el nombre del activo con el que se realizará la optimización. El marcado XAML de este campo es muy sencillo.

    

<TextBox Width="100"          IsEnabled="{Binding EnableMainTogles, UpdateSourceTrigger=PropertyChanged}"          Text="{Binding AssetName}"/>

Aparte de la indicación de la anchura de la ventana, podemos ver los campos IsEnabled y Text. El primero de ellos se encarga de la accesibilidad del campo para la edición. Si este se ha establecido en true, el campo estará disponible para la edición, si ha establecido en false, estará bloqueado. La propiedad Text contiene el propio texto introducido en este campo. A continuación, frente a cada uno de ellos, vemos una construcción entre llaves. Todo lo que se encuentra en ella, implementa la conexión del objeto con una propiedad pública determinada de la clase ViewModel, indicada tras el parámetro "Binding".

Autor: Andrey Azatskiy

Razón de la queja: