2012-12-19 20 views
7

NavigationService.GoBack(); Sto impostando una variabile in viewmodel e poi voglio tornare indietro, quando sono tornato voglio usare quella variabile, ma non sembra funzionare nulla, non voglio aggiornare quella pagina.Utilizzare una variabile su NavigationService.GoBack

Qualche idea?

Qui sto impostando la variabile e voglio tornare alla mia Pagina Principale.

void item_click(object sender, RoutedEventArgs e) 
    { 

    Button b = e.OriginalSource as Button; 

    App.ViewModel.bName = b.Content.ToString(); 
    App.ViewModel.bID = b.Name; 

    this.NavigationService.GoBack(); 

    } 

Qui nella pagina principale voglio eseguire il controllo per verificare se le variabili sono cambiate.

public MainPage() 

    { 
     /* 
i don't want to run this actually, when i'm coming back from my secondarypage. 

     InitializeComponent(); 
     InitializeSettings(); 

*/ 

      if (App.ViewModel.bName != null) 
      { 
       myButton.Content = App.ViewModel.bName; 
       myButton.Name = App.ViewModel.bID; 
      } 
    } 
+1

Puoi pubblicare un po 'del tuo codice? la tua domanda è un po 'vaga –

+0

ok, ho modificato il mio post – user1845258

+0

Esiste la possibilità che la classe viewmodel in cui sono presenti bName e bID, venga distrutta quando esci dalla pagina e torni alla pagina principale? E una nuova istanza è fatta della stessa classe, questo significa che i tuoi vars sono di nuovo vuoti e anche il tuo risultato sarà. –

risposta

1

io non ho capito tutto, ma avete provato con la classe "App" per dichiarare una variabile globale a tutte le pagine, invece di ViewModel?

Aggiungere forse:

Usa:

(App)App.Current 

Da questo link: How to reference properties, global variable in app from other page for windows phone

+0

sry la mia domanda è poco vaga, ma voglio passare dalla mia pagina principale alla mia pagina secondaria, quindi voglio tornare indietro senza aggiornare la pagina principale, ma voglio cambiare nella pagina principale. – user1845258

+0

"quindi voglio tornare indietro senza aggiornare la pagina principale, ma voglio cambiare nella pagina principale." Ok, nessun problema, ma cosa ti serve cambiare nella pagina principale, per favore? –

1

oh mi dispiace per la domanda vaga, ma ho risolto il mio problema.

questo era necessario nella pagina principale.

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) 
    { 

     if (App.ViewModel.bName != null) 
     { 
      myButton.Content = App.ViewModel.bName; 
      myButton.Name = App.ViewModel.bID; 
     } 


     base.OnNavigatedTo(e); 

    } 
+0

Sono felice di sentirlo! Buona fortuna per il futuro ;-) –

Problemi correlati