如何获取当前页面的类型并在Windows Phone 8中刷新它

时间:2015-01-29 15:17:58

标签: c# windows-phone-8 windows-phone windows-phone-8.1 windows-8.1

在我的Windows Phone 8.1应用程序中,我想获取当前页面类型,如果它与我的检查匹配则刷新该页面。怎么做?这不起作用:

Frame rootFrame = Window.Current.Content as Frame;

1 个答案:

答案 0 :(得分:5)

你可以这样:

var pageType = (Window.Current.Content as Frame).Content.GetType();

关于提神:

如果您只想刷新特定类型的网页(让我们称之为MyPage),您可以执行以下操作:

var page = (Window.Current.Content as Frame).Content as MyPage;
if (page != null) {
    page.Refresh(); //This is a method that you implement in the page, that refreshes it
}

如果您要刷新多种类型的页面,请使用一个名为Refresh的方法创建一个界面,并在上面的示例中使用as IMyInterface而不是as MyPage

现在,如果您真的想通过导航进行刷新(这似乎不是最好的主意),您可以执行以下操作:

var frame = (Frame)Window.Current.Content;
frame.Navigate(typeof(MyPage));
frame.BackStack.RemoveAt(frame.BackStack.Count - 1); //Or RemoveAt(0), haven't tested it

但是这种方法在某些情况下不起作用。