Acabo de leerme un poco por alto la documentación de Silverlight y… vaya, está a medio hacer :P Los errores de depuración son… digamos que los programadores de Struts se sentirán como en casa :D
En fin, al trigo. He creado un sencillo hola mundo (que original soy) en Silverlight con C# y VisualStudio 2008. El proceso es simple, creamos un nuevo proyecto de Silverlight en VisualStudio:
Tras esto, vemos que nos ha creado una serie de ficheros que contienen la funcionalidad básica para que nuestros proyectos trabajen adecuadamente con las porciones Silverlight. Nos dirigiremos a “Page.xaml” y pondremos la parte visible de nuestro hola mundo. En mi caso se trata de un bloque de texto (etiqueta para entendernos) que muestra el texto “Pincha aquí” y al pincha muestra un clásico “Hola Mundo”.
Para ello pondremos el siguiente código:
Como veis no tiene mucho misterio, es un bloque de texto que obligatoriamente tiene un nombre, le hemos puesto un texto y le asignamos el nombre del método que se ejecutará cuando se cumpla la propiedad “MouseLeftButtonUp” o como los mortales lo llaman, click.
Evidentemente el método, en mi caso “Saluda” tenemos que programarlo. Los archivos xaml guardan únicamente información de presentación, por lo que ese método, al ser lógica de negocio debe estar en los cs. Nos dirigimos al Page.xaml.cs y ponemos el código:
public void Saluda(object sender, MouseEventArgs e) { TextBlock textBlock = (TextBlock)sender; if (textBlock.Text == "Pincha aquí") textBlock.Text = "Hola Mundo!"; else textBlock.Text = "Pincha aquí"; }
Es todo bastante legible… salvo la primera línea. El problema es que no podemos acceder directamente al objeto “TextBlock” que definimos en el xaml, sino que tiene que llegarnos por medio del evento. Como todos los eventos tienen un source (que es el objeto que los genera) no tenemos problema, eso sí, debemos ahormarlo a TextBlock pues los eventos nos devuelven objetos de tipo object.
Ya está todo listo, ahora sólo queda probarlo, así que le damos “al play” (Debug -> Start debugging” y obtendremos:
Tras un click:
Como veis no es que sea difícil, pero muchos de los errores que pueden cometerse en el código compilan perfectamente y dan un bonito y críptico error. Por ejemplo, si ponemos mal el nombre del método a llamar (por ejemplo, cambiad “Saluda” por “Saluda1” en el xaml) y compilamos, no dará problemas. En tiempo de ejecución nos dará un error estilo:
Si de ahí sacáis de dónde viene el error, felicidades podéis trabajar en ensamblador :p