Mañana no… hoy mismo

El diseñador XAML facilita la creación de una interface. Lamentablemente tenemos que esperar hasta el tiempo de ejecución para poder ver nuestros controles mostrando datos ¿o no es así?… pues no, puede ser hoy mismo, en tiempo de diseño.

Por estos lares hay un comercial de una empresa de transporte donde un adulto llora como una niña porque está necesitando urgentemente algo que solo le llegará hasta mañana, y entonces chilla: “no, yo lo quiero hoy mismo…”. Este es de esos comerciales que no son fáciles de sacarse de la cabeza. Así mismo, no tenemos que esperar hasta el tiempo de ejecución de nuestras aplicaciones para poder ver los controles con datos. Esto es posible en tiempo de diseño.

La principal ventaja de esto es que podemos ver en tiempo de diseño la apariencia final, pero final final, de nuestros controles ya que incluyen datos. No tenemos que imaginarnos como va a ser la apariencia del control una vez poblado con información. No tenemos que compilar ni pasar por una ejecución ni autenticarnos ni recorrer formularios ni nada.

Si en tu equipo de programadores tienen la fortuna de contar con un diseñador encargado de crear las interfaces el será el primero en beneficiarse pues no necesita saber de programación ni conectarse a ninguna base de datos para ver información sobre los controles, incluso si trabaja en Expression Blend.

La teoría tras esto dice que nuestras interfaces, páginas y controles, cuentan con dos DataContext: uno que se utiliza en tiempo de ejecución y otro en tiempo de diseño, pero nunca los dos al mismo tiempo, obviamente.

Ya que los datos no los traerá el Espíritu Santo tenemos que crearlos o prepararlos de alguna manera. Conectarse a una base de datos es una opción, sin embargo Silverlight nos ofrece una alternativa más “transportable”: un archivo plano XAML acompañado de un par de clases utilitarias… es cierto que dije anteriormente que no había que hacer nada, pero les aseguro que es mucho menos trabajo que preparar una base de datos, sobre todo cuando en las primeras etapas de un desarrollo ni siquiera existe un repositorio de datos.

Veamos un ejemplo de la clase utilitaria con la que representaremos cada “registro” de una base de datos:

  1. public class clsPersona
  2. {
  3.   public int Edad { get; set; }
  4.   public string Nombre { get; set; }
  5. }

Si, ya sé que es bastante sencilla, pero es simplemente para que se entienda la idea.

La otra clase es una colección de estos “registros”:

  1. public class clsPersonaCollection : List<clsPersona>
  2. {
  3.   public clsPersonaCollection() { }
  4. }

Fácil hasta aquí ¿cierto? Ahora los datos, que prepararemos en un archivo XAML como este que llamé “MyDesignData.xaml”:

  1. <local:clsPersonaCollection xmlns:local=”clr-namespace:SilverlightApplication1″
  2. xmlns=”http://schemas.microsoft.com/client/2007″&gt;
  3.   <local:clsPersona Edad=”12″
  4.                    Nombre=”Miguel” />
  5.   <local:clsPersona Edad=”22″
  6.                    Nombre=”Andres” />
  7.   <local:clsPersona Edad=”33″
  8.                    Nombre=”Martha” />
  9. </local:clsPersonaCollection>

 La sintaxis usada aquí es la misma de un diccionario de recursos, de allí que debamos usar espacios de nombres, en este caso dos: uno que referencia el espacio de nombres donde colocamos las clases utilitarias y otro, obligatorio, que es el espacio de nombres por defecto “http://schemas.microsoft.com/client/2007”.

Y eso es todo lo que necesitamos para configurar una “fuente de datos” para tiempo de diseño. Ahora todo lo que queda por hacer es… utilizarla, como en este ejemplo:

New Picture (14)

Obsérvese el uso de “d:DataContext”, que apunta al archivo XAML con los datos de muestra, y eso no es todo, se encarga de instanciar por nosotros la lista de datos. Tener presente que todo lo que está definido con el “Ignorable” “d” sólo será utilizado en tiempo de diseño.

Así las cosas, no se diga pues que tenemos que imaginar cómo se verán nuestros controles con datos. Podemos verlos pobladitos hoy mismo.

Anuncios

Acerca de SilverIdeas

Instructor y entusiasta en el uso de Silverlight y otras tecnologías XAML.
Esta entrada fue publicada en Silverlight, XAML. Guarda el enlace permanente.

Una respuesta a Mañana no… hoy mismo

  1. Corsariovasco dijo:

    Buen post. Ya he visto que has agregado un RSS.

    Gracias,

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s