private async void Calculo_Clicked(object sender, EventArgs e) { if (litros.Text != null && cajas.Text == null) // Elige la rama por litros propuestos { try { operacionesBotellas(); } catch (NullReferenceException ex) { mensageError(); } } else if (litros.Text == null && cajas.Text != null) // Elige la rama por cajas propuestas. { try { operacionesCajas(); } catch (NullReferenceException ex) { mensageError(); } } else // Si no se rellena ni los litros ni las cajas. { mensageError(); } // Método que realiza todos cálculos. void operacionesBotellas() { DataBase articulo = pickerArticulo.SelectedItem as DataBase; DataBase botellanueva = pickerBotella.SelectedItem as DataBase; DataBase carton = pickerCarton.SelectedItem as DataBase; DataBase tapon = pickerTapon.SelectedItem as DataBase; // Total palet de botella nueva requerida. operaciones.litros = Convert.ToInt32(litros.Text); operaciones.cantidadNewBot = botellanueva.cantidad; operaciones.formato = botellanueva.formato; titulo.IsVisible = true; needbot.Text = operaciones.getNewPelletBot().ToString(); // Total silostainer requeridos. operaciones.cantidadSilo = tapon.cantidad; operaciones.cantidadTotalBot = botellanueva.cantidad; titulo2.IsVisible = true; needtap.Text = operaciones.getSilostainer().ToString("N2"); // Total palet terminado producidos. operaciones.pack = articulo.pack; operaciones.cantidadPalet = articulo.cantidad; titulo3.IsVisible = true; var paletTerminado = operaciones.getEndPellet(); resutlterm.Text = paletTerminado.ToString("N2"); // Total cartones requeridos. operaciones.cantidadCarton = carton.cantidad; //Cantidad de cartones que tiene un palet. operaciones.cantidadPalet = articulo.cantidad; //Cantidad de cajas que tiene un palet operaciones.pack = articulo.pack; //Pack que tiene una caja. operaciones.totalPaletTerminado = paletTerminado; titulo1.IsVisible = true; needcar.Text = operaciones.getCarton().ToString("N2"); } void operacionesCajas() { DataBase articulo = pickerArticulo.SelectedItem as DataBase; DataBase botellanueva = pickerBotella.SelectedItem as DataBase; DataBase carton = pickerCarton.SelectedItem as DataBase; DataBase tapon = pickerTapon.SelectedItem as DataBase; //Total palet de carton requerido. operaciones.cajas = Convert.ToInt32(cajas.Text); operaciones.cantidadCarton = carton.cantidad; operaciones.pack = articulo.pack; titulo1.IsVisible = true; needcar.Text = operaciones.getPackaging().ToString("N2"); // Palet terminado resultante de la producción. operaciones.cantidadPalet = articulo.cantidad; titulo3.IsVisible = true; resutlterm.Text = operaciones.getPaletTerminado().ToString("N2"); //Total silostainer requeridos operaciones.cantidadSilo = tapon.cantidad; titulo2.IsVisible = true; needtap.Text = operaciones.getSilostainerCajas().ToString("N2"); //Total palets de botella nueva requeridos. operaciones.cantidadNewBot = botellanueva.cantidad; titulo.IsVisible = true; needbot.Text = operaciones.getBotellaNueva().ToString("N2"); } void mensageError() { DisplayAlert("Error", "No se pueden dejar elementos vacíos.", "Ok"); } }