/// <summary> /// Maneja el evento que envia la instrucción de editar un componente /// </summary> /// <param name="sender">La fuente del evento.</param> /// <param name="e">Los argumentos de tipo <see cref="RoutedEventArgs"/> que contienen la información del evento.</param> private void btnEditComp_Click(object sender, RoutedEventArgs e) { string idString = ((sender as Button).Parent as Grid).Children.OfType <FrameworkElement>().Where(x => x is TextBlock).Select(y => (y as TextBlock).Text).FirstOrDefault(); int id = int.TryParse(idString, out id) ? id : -1; CtoCompItem item = this.GetComponentById(id); var cmpEditor = new ComponentPicker(item.Component); cmpEditor.ShowDialog(); if (cmpEditor.DialogResult.Value) { Componente updateC = cmpEditor.SelectedComponent; item.Component.UpdateComponentTr(TabalimApp.CurrentTablero, (Object result) => { if ((Boolean)result) { if (!TabalimApp.CurrentTablero.Circuitos.ContainsKey(item.Component.Circuito.ToString())) { TabalimApp.CurrentTablero.Circuitos.Add(item.Component.Circuito.ToString(), item.Component.Circuito); } this.Refresh(); } }, updateC.Circuito, updateC.Count, updateC.Potencia); } }
/// <summary> /// Obtiene el circuito asociado al botón presionado /// </summary> /// <param name="sender">El botón que envía la acción.</param> /// <returns>El circuito seleccionado</returns> private Circuito GetCircuito(Button sender, out string cKey) { cKey = (((sender.Parent as StackPanel).Parent as Grid).Children[0] as TextBlock).Text; cKey = cKey.Split('(')[1].Split(')')[0]; string key = cKey; CtoCompItem item = this.listOfCircuits.ItemsSource.OfType <CtoCompItem>().Where(x => x.CtoKey == key).FirstOrDefault(); return(item.Circuit); }
/// <summary> /// Maneja el evento que envia la instrucción de eliminar un componente /// </summary> /// <param name="sender">La fuente del evento.</param> /// <param name="e">Los argumentos de tipo <see cref="RoutedEventArgs"/> que contienen la información del evento.</param> private async void btnDelComp_Click(object sender, RoutedEventArgs e) { string idString = ((sender as Button).Parent as Grid).Children.OfType <FrameworkElement>().Where(x => x is TextBlock).Select(y => (y as TextBlock).Text).FirstOrDefault(); int id = int.TryParse(idString, out id) ? id : -1; CtoCompItem item = this.GetComponentById(id); if (await this.ShowQuestionDialog("Eliminar componente", String.Format("Esta seguro de querer eliminar el componente {0}", item.ComKey))) { item.Component.DeleteComponentTr( (Object result) => { if ((Boolean)result) { this.Refresh(); } }); } }