2012-12-19 11 views
7

NavigationService.GoBack(); Ustawiam zmienną w viewmodelu, a potem chcę wrócić, kiedy wrócę, chcę użyć tej zmiennej, ale nic nie działa, nie chcę odświeżać tej strony.Użyj zmiennej w usłudze NavigationService.GoBack

Wszelkie pomysły?

Tutaj ustawiam zmienną i chcę wrócić do mojej strony głównej.

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(); 

    } 

Tutaj na mojej stronie głównej chcę uruchomić sprawdzenie se jeśli zmienione zostały zmienne.

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

Czy możesz zamieścić część swojego kodu? twoje pytanie jest trochę niejasne –

+0

na pewno ok, edytowałem mój post – user1845258

+0

Czy istnieje możliwość, że klasa viewmodel, w której znajdują się twoje bName i bID, zostaje zniszczona po opuszczeniu strony i powrocie do strony głównej? Nowa instancja składa się z tej samej klasy, co oznacza, że ​​twoje vary są znowu puste, a twój wynik również będzie. –

Odpowiedz

1

ja nie zrozumiałem wszystko, ale czy próbowałeś z klasą „App” zadeklarować zmienną globalną do wszystkich stron zamiast ViewModel?

Dodaj może:

przeznaczenie:

(App)App.Current 

z tego linku: How to reference properties, global variable in app from other page for windows phone

+0

Moje pytanie jest mało ogólne, ale chcę przejść z mojej strony głównej do mojej strony dodatkowej, a następnie chcę wrócić bez odświeżania strony głównej, ale chcę zmienić na stronie głównej. – user1845258

+0

"wtedy chcę wrócić bez odświeżania strony głównej, ale chcę zmienić na stronie głównej." Ok, nie ma problemu, ale co trzeba zmienić na stronie głównej? –

1

oh przepraszam za pytanie niejasne, ale rozwiązać mój problem.

to było potrzebne na stronie głównej.

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

Cieszę się, że to słyszę! Powodzenia na przyszłość ;-) –

Powiązane problemy