在NavigationService.GoBack上使用变量

时间:2012-12-19 09:08:32

标签: c# windows-phone-8

NavigationService.GoBack();我在viewmodel中设置了一个变量然后我想回去,当我回来时我想使用那个变量,但似乎没有任何东西可以运行,我不想刷新那个页面。

有什么想法吗?

这里我设置变量,我想回到我的主页。

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

    }

在我的MainPage中,我想运行检查以查看变量是否已更改。

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;
            }
    }

2 个答案:

答案 0 :(得分:1)

我没有理解所有内容,但您是否尝试使用“App”类向所有页面声明变量global而不是ViewModel?

添加可能:

使用:

(App)App.Current 

从这个链接:  How to reference properties, global variable in app from other page for windows phone

答案 1 :(得分:1)

哦,我很抱歉这个模糊的问题,但我解决了我的问题。

主页中需要这样做。

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

    }