如何获取当前页面的类型并在 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
但这种方法在某些情况下是行不通的。
在我的 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
但这种方法在某些情况下是行不通的。