2012-12-19 17 views
7

NavigationService.GoBack(); Viewmodel'de bir değişken ayarlıyorum ve geri dönmek istiyorum, geri döndüğümde bu değişkeni kullanmak istiyorum ama hiçbir şey çalışmıyor gibi görünüyor, bu sayfayı yenilemek istemiyorum.Bir değişken üzerinde Use NavigationService.GoBack

Herhangi bir fikrin var mı?

Burada değişken ayarlıyorum ve ana sayfama dönmek istiyorum.

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

    } 

Burada, ana sayfamda değişkenin değişip değişmediğini kontrol etmek istiyorum.

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

Kodunuzun bir kısmını gönderir misiniz? Sorunuz biraz belirsiz –

+0

emin tamam, benim yazımı düzenledim – user1845258

+0

Sayfanızdan ayrıldığınızda ve ana sayfaya geri döndüğünüzde bName ve bID'nizde bulunan viewmodel sınıfının imha edilebileceği bir durum var mı? Ve aynı sınıftan yeni bir örnek oluşturuldu, bu sizin varslarınızın tekrar boş olduğu ve sonuçlarınızın da olacağı anlamına gelir. –

cevap

1

Her şeyi anlamış değil ancak bunun yerine ViewModel tüm sayfalarına değişken küresel ilan etmeye "Uygulama" sınıfı ile denediniz mi? How to reference properties, global variable in app from other page for windows phone

+0

sry benim sorum biraz belirsiz, ama ana sayfamdan ikincil sayfama gitmek istiyorum, sonra ana sayfayı yenilemeden geri dönmek istiyorum, ama ana sayfada değiştirmek istiyorum. – user1845258

+0

"sonra ana sayfayı yenilemeden geri dönmek istiyorum, ama ana sayfada değiştirmek istiyorum." Tamam sorun değil, lütfen ana sayfada neye ihtiyacınız var? –

1

ah ben belirsiz soru için üzgünüm ama benim sorun çözüldü: Bu bağlantısından

(App)App.Current 

:

Kullanımı:

belki ekleyin. Bu, ana sayfada gerekliydi.

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

Bunu duyduğuma sevindim! Gelecek için iyi şanslar ;-) –

İlgili konular