Como utilizar LINQ para levantar un handler para varios controles.
Posted by dsy on 22 Oct, 2012 in Blog | 0 comments
Cuantas veces no hemos escrito “n” líneas de código solo para dar a distintos controles una tarea en específico sin saber que tal vez se pueda hacer en una. Bueno… no prometo nada pero aquí propongo un ejemplo de como podríamos solucionar (o mejor dicho, eficientizar este proceso) este problema. Supongamos que tenemos 3 botones en nuestro LayoutRoot en nuestro control de inicio, algo así: <Grid x:Name="LayoutRoot" Background="White"> <Grid.ColumnDefinitions> <ColumnDefinition/> <ColumnDefinition/> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition/> <RowDefinition/> </Grid.RowDefinitions> <Button x:Name="btn1" Width="100" Height="25" Content="Botón 1" VerticalAlignment="Center" HorizontalAlignment="Center"/> <Button x:Name="btn2" Width="100" Height="25" Content="Botón 2" Grid.Column="1" VerticalAlignment="Center" HorizontalAlignment="Center"/> <Button x:Name="btn3" Width="100" Height="25" Content="Botón 3" Grid.Row="1" VerticalAlignment="Center" HorizontalAlignment="Center"/> </Grid> Normalmente le asociaríamos los eventos de la siguiente forma: public MainPage() { InitializeComponent(); btn1.Click += new RoutedEventHandler(btn1_Click); btn2.Click += new RoutedEventHandler(btn2_Click); btn3.Click += new RoutedEventHandler(btn3_Click); } void btn1_Click(object sender, RoutedEventArgs e) { throw new NotImplementedException(); } void btn2_Click(object sender, RoutedEventArgs e) { throw new NotImplementedException(); } void btn3_Click(object sender, RoutedEventArgs e) { throw new NotImplementedException(); } O así: btn1.Click += (a, b) => { /*Código a implementar*/ }; btn2.Click += (a, b) => { /*Código a implementar*/ }; btn3.Click += (a, b) => { /*Código a implementar*/ }; bueno, el propósito de este post es proponer algo de la siguiente forma: public MainPage() { InitializeComponent(); //De esta forma se levantan los handlers para todos lo botones LayoutRoot.Children.ToList().ForEach(btn => ((Button)btn).Click += new RoutedEventHandler(btn_Click)); } void btn_Click(object sender, RoutedEventArgs e) { //Identificamos quien lo manda a llamar switch (((Button)sender).Name) { case "btn1": //Código para botón 1 break; case "btn2": //Código para botón 2 break; case "btn3": //Código para botón 3 break; } } Y ya para terminar, como no todo es perfecto en esta vida puede ser que no solo tengamos botones en nuestro LayoutRoot, si no todo tipo de controles que al hacerle el parse a Button nos marcará...
Read MoreDream Systems SL
Posted by dsy on 18 Oct, 2012 in Portafolio | Comentarios desactivados en Dream Systems SL

Dream Systems S.A. de C.V., empresa 100 % Mexicana fundada en 2009, se presenta a usted para ofrecer servicios de Alta Tecnología garantizando la seguridad e integridad de la información.Deseamos ponernos a su entera disposición y ser una alternativa de solución a los requerimientos de su empresa encargándonos de sus necesidades en forma integral y eficaz.Mediante el desarrollo y diseño en acorde a los objetivos y valores, diseñamos una estrategia global consistente para el cliente para consolidarle en una ejecución creativa y eficiente permitiendo mejorar el funcionamiento, la relación con sus clientes y aumentar ventas, junto con una significativa reducción de costos.Para el desarrollo de nuestra labor contamos con las herramientas más nuevas del ramo y principalmente con personal altamente calificado lo que garantiza la efectividad, rapidez, calidad, seguridad en información, atención personalizada y un precio adecuado en cada uno de nuestros servicios. Dream Systems S.A. de...
Read More