none
Llamar página desde Frame.Navigation RRS feed

  • Pregunta

  • Hola amigo, sucede que tengo una aplicación de navegación en Silverlight, esta carga en el frame de la MainPage las demás páginas pero requiere validación así que carga de inicio con una ventana Login, pero al validar debo cargar la  ventana Home, en el Frame de la MainPage, el problema es que desde la ventana Login, no puedo hacer que en ese Frame se cargue Home pues ese evento lo invocaría en el botón "Aceptar" de la página Login

    ¿Cómo podría solucionarlo? 

    Gracias de antemano. 

    martes, 21 de agosto de 2012 18:09

Todas las respuestas

  • De alguna manera tienes que pasarle a la ventana Login  la referencia del frame al constructor del page(login).

    por ejemplo:

    miFrame.Content=new Login(Frame miframe);

    para asi poder cambiar su propiedad Content desde la ventana Login.

    Un saludo

    martes, 21 de agosto de 2012 18:17
  • Gracias perp perdón amigo no entiendo. 

    Intenté esto pero no carga: 

            private void OKButton_Click(object sender, RoutedEventArgs e)
            { //Aquí se hará la validación de usuario y de ser correcto carga el /Home
                MainPage mp = new MainPage(); //Esto lo puse porque de otra manera no tengo acceso a sus controles
                mp.ContentFrame.Navigate(new Uri("/Home", UriKind.Relative));
            }

    Este evento está en el Login, pero Login  se carga en el Frame.Navigate de la MainPage, sólo que no lo carga

    ¿cómo podría solucionarlo?

    martes, 21 de agosto de 2012 19:02
  • Lo primero , no me parece muy adecuado instanciar el mainPage en el evento del button click.. porque haber luego como recuperas la referencia del MainPage.

    Si el frame está en el MainPage, prueba en vez del metodo navigate el metodo frame.Contenet

    Si tu frame se llamase mi frame quedaría así

      private void OKButton_Click(object sender, RoutedEventArgs e)
            { //Aquí se hará la validación de usuario y de ser correcto carga el /Home
                MainPage mp = new MainPage(); //Esto lo puse porque de otra manera no tengo acceso a sus controles
                mp.miFrame.Content=new VentanaSiguiente();
            }

    Asi funciona , pero necesitarás tener acceso al frame de mainPage desde todas las ventanas de tu aplicación sino no podrás navegar entra paginas.

    martes, 21 de agosto de 2012 19:58