2010-10-16 11 views
6

¿Hay alguna forma de obtener el objeto de la página principal desde cualquiera de sus controles secundarios? Como una posible solución veo aquí burbujear a través de los padres y parar tan pronto como un padre es del tipo PhoneApplicationPage. Está bien para mí, pero ¿y si necesito hacer eso desde otras páginas? Es decir ¿Cómo obtener la página principal de una aplicación desde cualquier lugar dentro de la aplicación?¿Cómo obtener la página principal desde cualquier parte de la aplicación Windows Phone 7?

Respuesta

9

En su App.xaml, hay una propiedad pública llamada RootFrame del tipo PhoneApplicationFrame class. Es el contenedor para PhoneApplicationPages como discussed in this article.

Siempre puede acceder al RootFrame ya que está dentro del alcance de la aplicación. Así, por ejemplo ...

var frame = Application.Current.RootVisual as PhoneApplicationFrame; 
var startPage = frame.Content as PhoneApplicationPage; 

La página que su aplicación se inicia en está en WMAppManifest.xml ...

<Tasks> 
    <DefaultTask Name ="_default" NavigationPage="MainPage.xaml"/> 
</Tasks> 
+0

Gracias! ¡Funciona! –

0

me querían para encapsular el comportamiento de un elemento de pivote dentro de una clase de vista. Al parecer, SelectionChanged gira a través de cada elemento de pivote durante el inicio, así que tuve que hacer lo siguiente:

var frame = App.Current.RootVisual as PhoneApplicationFrame; 

if (null == frame) //during app load 
{ 
    container = App.Current.RootVisual as MainPage; 
} 
else //during pivot event; 
{ 
    container = frame.Content as MainPage; 
} 

de contenedores se define como contenedor MainPage privada = null; Extraño.

Cuestiones relacionadas