c# - transporte - metro mas cercano a mi ubicacion
Volver a cargar la página en la aplicación de metro C# (2)
Estoy desarrollando una aplicación de metro con Windows 8 RTM y C # (VS 2012 RTM), estoy atascado con la recarga de la página. ¿Puede alguien explicarme cómo recargar la página sin tener que volver a navegar a la misma página? Breve: estoy desarrollando una aplicación de metro con soporte multilingüe. Cuando el usuario selecciona el idioma, estoy sobrescribiendo el idioma primario con el código de abajo
Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride = "de";
y vuelve a cargar la página utilizando este código
this.Frame.Navigate(this.GetType());
El idioma cambió a "de", pero cuando presiono "Atrás" en la página, se desplaza por la misma página en lugar de navegar a la página anterior. Me faltó algo. ¿Alguien puede explicarme cómo hacerlo? Gracias por adelantado
Esto refrescará tu página:
var _Frame = Window.Current.Content as Frame;
_Frame.Navigate(_Frame.Content.GetType());
_Frame.GoBack(); // remove from BackStack
- Al manejar OnNavigatingFrom () puede guardar los datos y el estado de su página.
- Al manejar OnNavigatingTo () puede cargar los datos y el estado de su página.
Como advertencia, mi muestra no tiene en cuenta los parámetros de la página, es posible que deba hacerlo. Además, otra advertencia, mi muestra vuelve a cargar tu página dos veces. Pero el GoBack () es necesario para eliminar la nueva entrada del BackStack. A diferencia de WP, Frame no tiene Refresh (). Además, el BackStack no tiene Remove ().
ACTUALIZAR
Ya no uso el enfoque anterior. Yo uso esto:
public bool Reload() { return Reload(null); }
private bool Reload(object param)
{
Type type = this.Frame.CurrentSourcePageType;
if (this.Frame.BackStack.Any())
{
type = this.Frame.BackStack.Last().SourcePageType;
param = this.Frame.BackStack.Last().Parameter;
}
try { return this.Frame.Navigate(type, param); }
finally { this.Frame.BackStack.Remove(this.Frame.BackStack.Last()); }
}
No estoy seguro de entender lo que está intentando hacer, por lo que esto puede estar mal.
Al llamar a esa línea de código cuando está actualizando la página, está creando un nuevo objeto del tipo actual y navegando hacia él, por lo que esto no guarda los cambios que el usuario hace mientras están en la página actual.
¿Estás utilizando algún tipo de patrón de diseño? Para cosas como esta, uso MVVM (que usa la biblioteca de luz MVVM) que implementa un servicio de navegación realmente genial que mantendrá a raya este tipo de cosas.