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;
}
}
答案 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);
}