private async void Guardar()
        {
            IsEnabled = false;
            #region Miranda: Guardar Tabla

            #region Ciclo para Guardar en Persistencia
            if (Application.Current.Properties.ContainsKey("ContadorAcciones"))//verifico cuantos elementos tiene mi lista para saber cual es la psocion del nuevo elemento a agregar
            {
                Elementos = (int.Parse((Application.Current.Properties["ContadorAcciones"]) as string));
            }
            else
            {
                Elementos = 0;
            }

            Application.Current.Properties["TipoAccion" + Elementos]  = TipoAccion.ToString();
            Application.Current.Properties["FechaAccion" + Elementos] = FechaAccion.ToString();
            Application.Current.Properties["Responsable" + Elementos] = ResponsableAccion.ToString();
            Application.Current.Properties["Comentario" + Elementos]  = Comentario.ToString();
            Application.Current.Properties["ContadorAcciones"]        = (Elementos + 1).ToString();
            await Application.Current.SavePropertiesAsync();

            #endregion


            int filas;
            filas         = Elementos + 1;
            HeighListView = 44 * filas;//actalizo mi heigh
            await Application.Current.MainPage.DisplayAlert("Notificación", "Usted Tiene hasta Ahora: " + filas + " Acciones", "Excelente");

            IsEnabled = true;
            Acciones.Add(new Accion()
            {
                Comentario  = Comentario.ToString(),
                FechaAccion = FechaAccion,
                TipoAccion  = TipoAccion.ToString(),
                Responsable = ResponsableAccion.ToString(),
            });
            AnMeliponarioCajaViewModel.GetInstance().AccionesCaja   = Acciones;           //asigno los datos de mi lista
            AnMeliponarioCajaViewModel.GetInstance().HeighListViewB = this.HeighListView; //actualizo el heigh de mi vista anterior

            await Application.Current.MainPage.Navigation.PopAsync();


            #endregion


            TipoAccion        = string.Empty;
            OrigenColonia     = string.Empty;
            ResponsableAccion = string.Empty;
            Comentario        = string.Empty;
            IsEnabled         = true;
        }
        public ANMeliponarioViewModel()
        {
            /*
             * Application.Current.Properties["Idcaja" + 0] = 1.ToString();
             * Application.Current.Properties["Tipocaja" + 0] = "".ToString();
             * Application.Current.Properties["Fechaentregacaja" + 0] =DateTime.Now.ToString();
             * Application.Current.Properties["Activacaja" + 0] = "".ToString();
             * Application.Current.Properties["Comentariocaja" + 0] = "".ToString();
             * Application.Current.Properties["Contadorcajas"] = 1.ToString();
             * Application.Current.SavePropertiesAsync();
             */

            IsEnabled       = true;
            instance        = this;
            CajasAN         = AnMeliponarioCajaViewModel.GetInstance().Cajas;             //obtengo los datos de mi lista en la otra ANMeliponarioCajaViewModel
            HeighListViewAN = AnMeliponarioCajaViewModel.GetInstance().HeighListViewCaja; //obtengo el heigh de ANMeliponarioCajaViewModel
        }
        async void Guardar()
        {
            isEnabled = false;
            #region Validaciones

            /*
             * if (string.IsNullOrEmpty(IdMeliponario) || string.IsNullOrEmpty(Productor) || string.IsNullOrEmpty(Latitud) ||
             *  string.IsNullOrEmpty(Longitud) || string.IsNullOrEmpty(TipoMeliponarioM) || string.IsNullOrEmpty(Observaciones))
             * {
             *  await Application.Current.MainPage.DisplayAlert("Error", "Llene los campos obligatorios", "aceptar");
             *  IsEnabled = true;
             *  return;
             * }
             */
            #endregion

            #region Limpiar Cache                                            //borrar los datos existentes en persistencia

            if (Application.Current.Properties.ContainsKey("Contadorcajas")) //si contador es 0, entonces no hay cajas guardadas y no asigna nada a persistencia
            {
                Elementos = int.Parse((Application.Current.Properties["Contadorcajas"]) as string);
            }
            else
            {
                Elementos = 0;
            }
            for (int j = 0; j < Elementos; j++) //Elementos va a representar el total de elementos o filas existentes en mi persistencia
            {
                if (Application.Current.Properties.ContainsKey("Idcaja" + j))
                {
                    Application.Current.Properties.Remove("Idcaja" + j);
                }
                if (Application.Current.Properties.ContainsKey("Tipocaja" + j))
                {
                    Application.Current.Properties.Remove("Tipocaja" + j);
                }
                if (Application.Current.Properties.ContainsKey("Fechaentregacaja"))
                {
                    Application.Current.Properties.Remove("Fechaentregacaja");
                }
                if (Application.Current.Properties.ContainsKey("Activacaja"))
                {
                    Application.Current.Properties.Remove("Activacaja");
                }
                if (Application.Current.Properties.ContainsKey("Comentariocaja"))
                {
                    Application.Current.Properties.Remove("Comentariocaja");
                }
            }

            #endregion

            #region Ciclo para Guardar en Persistencia mi lista Actual
            i = 0; //inicio el contador de mis elementos o filas en (0)
            foreach (var caja in CajasAN)
            {
                Application.Current.Properties["Idcaja" + i]           = caja.IdCaja.ToString();
                Application.Current.Properties["Tipocaja" + i]         = caja.TipoCaja.ToString();
                Application.Current.Properties["Fechaentregacaja" + i] = caja.FechaEntrega.ToString();
                Application.Current.Properties["Activacaja" + i]       = caja.Activa.ToString();
                Application.Current.Properties["Comentariocaja" + i]   = caja.Comentario.ToString();
                i++;
                Application.Current.Properties["Contadorcajas"] = i.ToString();
                await Application.Current.SavePropertiesAsync();
            }

            #endregion

            int filas;
            filas = CajasAN.Count;
            Application.Current.Properties["Contadorcajas"] = filas.ToString(); //hay que examinar esta linea, es de prueba porque creo que no se actualiza bien el contador en la otra viewmodel cuando se borran todos los registros y esta linea evita eso
            HeighListViewAN = 44 * filas;                                       //actalizo mi heigh
            AnMeliponarioCajaViewModel.GetInstance().Cajas = this.CajasAN;      //asigno los datos de mi lista
            await Application.Current.MainPage.DisplayAlert("Notificación", "Usted Tiene hasta Ahora: " + filas + " Cajas Registradas", "Excelente");

            IsEnabled = true;
        }