none
¿Como pasar datos de un formulario a otro? RRS feed

  • Pregunta

  • Hola , necesito ayuda para saber como pasar informacion de un formulario a otro en un UWP.

    Tengo dos formulario , en uno simplemente tiene que recoger un string y pasarse lo al otro.

    En el primero tengo puesto esto:

    private async void BSig_Click(object sender, RoutedEventArgs e)
            {
                if (x)
                {
                    var Msg = new MessageDialog(" ....");
                    Msg.Title = "Advertencia";
                    await Msg.ShowAsync();
                }
                else
                {
                    Frame.Navigate(typeof(IndexSongs),pathCarpeta.Text);
                }
            }

    y en el formulario que recoge la informacion esto:

    protected override void OnNavigatedTo(NavigationEventArgs e)
            {
                if (e.Parameter is string)
                {
                    path = e.Parameter.ToString();
                }
                base.OnNavigatedTo(e);
            }

    Pero el metodo OnNavigatedTo(Navigation no se activa y no se recoge la informacion que necesito.

    ¿Es asi como se utiliza ?

    Cuando lo sobresescribes ¿Hay que bvolver a llamarlo en el constructor del formulario o sigue llamandose automaticamente?

    Muchas Gracias de antemano a todos los que respondais

    un saludo

    Pablo

    lunes, 28 de diciembre de 2015 10:51

Respuestas

  • En principio, está bien como lo estás haciendo. No hay que volver a llamar al OnNavigatedTo, al hacerle el override ya se encarga el polimorfismo de hacer que se ejecute. Debe haber por medio algún otro efecto que impide que se ejecute, por ejemplo, puede ser que estés heredando de alguna clase intermedia que dentro tenga otro OnNavigatedTo, o algo por el estilo. Por lo demás, en teoría tendría que funcionar tal como lo tienes.
    • Marcado como respuesta Pablo39621 miércoles, 30 de diciembre de 2015 12:27
    lunes, 28 de diciembre de 2015 12:32

Todas las respuestas

  • En principio, está bien como lo estás haciendo. No hay que volver a llamar al OnNavigatedTo, al hacerle el override ya se encarga el polimorfismo de hacer que se ejecute. Debe haber por medio algún otro efecto que impide que se ejecute, por ejemplo, puede ser que estés heredando de alguna clase intermedia que dentro tenga otro OnNavigatedTo, o algo por el estilo. Por lo demás, en teoría tendría que funcionar tal como lo tienes.
    • Marcado como respuesta Pablo39621 miércoles, 30 de diciembre de 2015 12:27
    lunes, 28 de diciembre de 2015 12:32
  • hola

    no creo que este punto haya cambiado respecto a Win8

    How to perform page navigation on Windows Phone 8

    como veras puedes pasar valores usando el NavigationService

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 28 de diciembre de 2015 13:25
  • o tambien podrias analizar

    Windows 10 Development: Adding Simple Navigation

    analiza el titulo "Navigation Parameters" con el argumento "e" podrias tomar los parametros

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 28 de diciembre de 2015 13:27
  • Hola Alberto.

    Tengo en la carpeta Common una clase NavigationHelper , ¿Puede ser que sea esa la que este interfiriendo con el metodo? , aparte en esa clase viene un ejemplo de como utilizar esa clases pero es mas orientado a guardar estados de la aplicacion y no se si eso puede ayudarme en algo.

    Pero vamos por lo demas no veo ninguan otra clase que pueda interferir.

    lunes, 28 de diciembre de 2015 13:37
  • Hola Leandro,

    Gracias por ambas aportacion, he porbado las dos pero no he llegado a poder implementarlas porque no consigo encontrar las clases. ¿Este sistema sirve con las UWP sobre windows 8 ? 

    lunes, 28 de diciembre de 2015 17:31
  • En principio, está bien como lo estás haciendo. No hay que volver a llamar al OnNavigatedTo, al hacerle el override ya se encarga el polimorfismo de hacer que se ejecute. Debe haber por medio algún otro efecto que impide que se ejecute, por ejemplo, puede ser que estés heredando de alguna clase intermedia que dentro tenga otro OnNavigatedTo, o algo por el estilo. Por lo demás, en teoría tendría que funcionar tal como lo tienes.
    Gracias Alberto , efectivamente el desarollo esta bien asi , el problema es (como he puesto en mi sisguient pregunta) una funciion que se ejecuta antes y no recoge el dato que el OnNavigateTo() esta pasando.
    miércoles, 30 de diciembre de 2015 12:30