2017-08-16 2 views
0

J'ai des problèmes avec les codes INavigationAware. J'ai 3 pages. Par exemple, je l'ai nommé pageA, pageB et pageC. PageA est une vue de la liste et je vais passer le paramètre à l'aide pageB OnItemSelectedComment passer un paramètre à la page précédente en utilisant INavigationAware Bouton Précédent

PageA Voir modèle

public void OnItemSelected(Complaint item) 
     { 
      if (item != null) 
      { 
       var param = new NavigationParameters(); 
       param.Add("id", item.Id); 
       mNavigationService.NavigateAsync("pageB", param); 
      } 
     } 

En pageB, je vais obtenir le paramètre à l'aide OnNavigatedTo.

PageB Voir modèle

public async void OnNavigatedTo(NavigationParameters parameters) 
     { 
      var id = parameters["id"]; 
      Title = string.Format("{0}: {1}", Strings.ComplaintDetail_Title, id); 
      await getComplaintDetail(Convert.ToInt32(id)); 

     } 

De pageB, je vais envoyer le paramètre à pageC en utilisant la même manière. Mais en ce moment, j'ai du mal à passer le paramètre à la pageB. Comme j'utilise le bouton Inavigation Back en haut à gauche, je ne sais pas comment passer le paramètre à la pageB. Le problème est que je dois passer le paramètre (clé primaire) à toutes les pages à des fins de sélection et de mise à jour. Aidez-moi, s'il vous plaît. Je ne suis pas sûr comment passer le paramètre en utilisant OnNavigatedFrom.

PageC Voir modèle

public void OnNavigatedFrom(NavigationParameters parameters) 
     { 

     } 

Merci à l'avance.

+0

Avez-vous envisagé d'utiliser un service? Si l'élément actuel doit de toute façon être connu de toutes les pages, le rendre disponible "globalement" pourrait être une alternative au fait de le faire circuler tout le temps. – Haukinger

+0

Comment le rendre global? Désolé, je suis totalement novice. – nuyuljana

+0

Grâce à un service qui est disponible pour tous vos modèles de vue – Haukinger

Répondre

1

Je déteste dire l'évidence, mais avez-vous essayé d'ajouter à la collection de paramètres dans la méthode OnNavigatedFrom?

public void OnNavigatedFrom(NavigationParameters parameters) 
    { 
     parameters.Add("test", "testValue"); 
    } 
+0

Merci beaucoup Brian. Mon problème est résolu. – nuyuljana

+0

Génial. Vous devriez marquer cette question répondu. –