如何在我的WP7应用中获取当前页面

25
有没有办法在我的Windows Phone 7应用程序中获取当前页面的活动实例?我一直在阅读文档并试图弄清楚,但一无所获。
例如,我的示例运行全局循环,该循环调用活动页面的公共方法。
例如,应用程序加载到Page1.xaml,如果我的循环在此页面处于活动状态,则需要触发Page1代码后台中找到的循环。 如果Page2处于活动状态,则需要触发Page2代码后台文件中的其他方法。
注意:我的各个页面中的方法不能是静态的,因为我需要访问实例变量。 因此,我不仅需要活动页面(可以通过某种变量实现),而且需要当前页面的实例。
2个回答

38

您可以从根框架获取当前页面。在项目中生成的默认App类具有RootFrame属性,该属性已经是PhoneApplicationFrame类型。 Content属性的值是当前页面,可以强制转换为PhoneApplicationPage

var currentPage = ((App)Application.Current).RootFrame.Content as PhoneApplicationPage;

Application类上的RootVisual属性引用相同的框架,但是它是一个UIElement,所以您可以使用以下内容:

var currentPage = ((PhoneApplicationFrame)Application.Current.RootVisual).Content;

使用这种技术,我如何调用PhoneApplicationPage中的方法?它不允许currentPage.myMethod()。 - andersra
1
您可以像调用其他类一样调用生成页面上的公共方法。要在自己的页面上调用方法,您需要将结果转换为特定类以访问其公共方法。 - Derek Lakin
我在这里漏掉了什么吗?var currentPage = ((App)Application.Current).RootFrame.Content as PhoneApplicationPage; currentPage = currentPage as Namespace.MyPage; - andersra

5

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接