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

How to get current page's Type and refresh it in Windows Phone 8

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

Frame rootFrame = Window.Current.Content as Frame;

你可以这样获取:

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

但这种方法在某些情况下是行不通的。