2013-06-12 3 views
1

Je suis nouveau sur la plate-forme Windows Phone. J'essaie de faire une application de nouvelles. Sur cette application, l'utilisateur clique sur et lit l'article de nouvelles, après, l'utilisateur veut revenir à la page principale pour voir à nouveau tous les en-têtes de nouvelles, et cliquez à nouveau sur les autres nouvelles.Windows Phone 8: Bouton Précédent

Mais lorsque l'utilisateur revient à la page principale après avoir lu le premier article, l'utilisateur clique sur le deuxième en-tête des nouvelles. Mais lorsque l'utilisateur accède à une nouvelle page, l'article de première page est toujours là.

Je veux demander ceci, y at-il un bouton de retour pour l'utilisateur (après avoir lu le premier article de nouvelles) à utiliser pour effacer le cache de la page de l'article quand il ou elle appuie pour revenir page principale?

Je l'ai utilisé mais ça ne l'est pas; J'ai écrit quelque chose sous ma demande httprequest, mais cela n'a pas fonctionné pour moi aussi;

private void LiveLongListSelector_Loaded(object sender, RoutedEventArgs e) 
{ 
    string url = "MYWEBAPIURL&rnd=" + new Random().Next(1,1000); 
    HttpWebRequest hWebRequest = (HttpWebRequest)HttpWebRequest.Create(url); 
    hWebRequest.Method = "GET"; 
    hWebRequest.BeginGetResponse(ResponseLive_Completed, hWebRequest); 
    hWebRequest.Headers[HttpRequestHeader.CacheControl] = "no-cache"; 
    hWebRequest.Headers[HttpRequestHeader.CacheControl] = "no-cache"; 
    hWebRequest.Headers["Cache-Control"] = "no-cache"; 
    hWebRequest.Headers["Pragma"] = "no-cache"; 
} 

Quelqu'un peut-il m'aider à trouver ce bouton de retour parfait ou autre chose?

Merci beaucoup

+0

Sur la deuxième page, quelle méthode utilisez-vous pour obtenir l'article de nouvelles qui a été choisi dans la liste sur la page principale? –

+0

J'utilise "protected override void OnNavigatedTo" pour obtenir l'ID de l'article et faire la demande ci-dessous .. –

Répondre

0

Il existe deux méthodes sur PhoneApplicationPage que vous pouvez remplacer et nettoyer un cache: OnNavigatedTo et OnNavigatedFrom.

+0

que vais-je écrire à la méthode "OnNavigatedFrom"? J'utilise la méthode "OnNavigatedTo" pour voir les détails dans mon autre page. Pouvez-vous m'aider à ce sujet? –

+0

@ kgms21 NavigationService.GoBack() est la bonne réponse, dans ce cas une instance de page n'est pas gardée en mémoire et vous n'avez pas besoin d'appliquer de logique pour nettoyer vos données en cache. J'étais confus, je pensais que la question concernait le nettoyage du cache, désolé. –

5

Utilisez simplement NavigationService.GoBack(); au lieu d'utiliser

NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.Relative)); 

Il effacera toutes les prises automatiquement.

ou vous pouvez utiliser NavigationService.RemoveBackEntry(); lorsque vous reviendrez pour lire le deuxième article. Utilisez quelque chose comme-

int a = NavigationService.BackStack.Count(); 
while (a > number) //number is stack count when comes to main page first time 
{ 
    this.NavigationService.RemoveBackEntry(); 
    a = NavigationService.BackStack.Count(); 
} 
+0

NavigationService.goBack(); est mieux maintenant mais. Je pense que l'application conserve les données pendant 10 secondes.Si j'attends 10 secondes après l'arrivée de ma page principale, en cliquant sur un nouvel article, pas de problème, il montre.J'ai compté ses 10-15 secondes tout le temps .. –

0

Je suggère d'utiliser le code suivant dans la méthode NavigatedTo():

protected override void OnNavigatedTo(NavigationEventArgs e) 
{ 
    while (NavigationService.RemoveBackEntry() != null); 
} 

Hope, qui aide.