none
Fallo NavigationService.Navigate RRS feed

  • Pregunta

  • Saludos, tengo una lista de elementos y cuando pulso en un elemento debe navegar a otra pagina

     

    El codigo es este

     

    Private Sub lstAlumnos_SelectionChanged(ByVal sender As System.Object, ByVal e As System.Windows.Controls.SelectionChangedEventArgs) Handles lstAlumnos.SelectionChanged
    
        If e.AddedItems.Count > 0 Then
    
          Dim li As New PROC_PERSONAS_CargarTodosAlumnosCursoResult
    
    
    
          li = e.AddedItems(0)
    
    
    
          Dim nombrealumno As String = li.Nombre + " " + li.Apellidos
    
          Dim curso As String = li.CodigoCurso
    
          Dim fijo As String = li.TelefonoFijo
    
          Dim movil As String = li.TelefonoMovil
    
          Dim email As String = li.Email
    
    
    
          NavigationService.Navigate(New Uri("/Page3.xaml?nombrealumno=" + nombrealumno + "&curso=" + curso + "&fijo=" + fijo + "&movil=" + movil + "&email=" + email, UriKind.Relative))
    
    
    
           End If
    
      End Sub

     

     

     

    y en la pagina que recibe, page3

     

    Protected Overrides Sub OnNavigatedTo(ByVal e As System.Windows.Navigation.NavigationEventArgs)
        MyBase.OnNavigatedTo(e)
    
        NavigationContext.QueryString.TryGetValue("nombrealumno", solonombrealumno)
      
        NavigationContext.QueryString.TryGetValue("curso", curso)
        NavigationContext.QueryString.TryGetValue("fijo", fijo)
        NavigationContext.QueryString.TryGetValue("movil", movil)
        NavigationContext.QueryString.TryGetValue("email", email)
    
        InitializeComponent()
    
        Me.PageTitle.Text = solonombrealumno
    
        If fijo = String.Empty Then
          btnFijo.IsEnabled = False
        Else
          btnMovil.IsEnabled = True
        End If
    
        If movil = String.Empty Then
          btnMovil.IsEnabled = False
        Else
          btnMovil.IsEnabled = True
        End If
    
        If email = String.Empty Then
          btnEmail.IsEnabled = False
        Else
          btnEmail.IsEnabled = True
        End If
    
    
      End Sub

     

     

    El caso es que me da un error, no se cual es el fallo

     

    Si me pudierais ayudar

     

    Un saludo

    sábado, 22 de enero de 2011 21:18

Respuestas

  • Me autocontesto, a veces parece que es bueno el dejar una tarea y volver al rato, para refrescar la mente

     

    Lo comento por si a alguien le pasa. 

     

    Despues de poner el MessageBox me he dado cuenta de que parece que no veia la pagina 3. Me he metido en la carpeta Debug del proyecto y la he borrado entera. AL volver a generar, la Pagina 3.g.i ya no aparecia con lo que he ido al explorador de proyectos.

     

    El caso es que le he dado al boton derecho sobre Page3.xaml y habia una opcion "Incluir en el proyecto". La he marcado, he generado y ya funciona

     

    Un saludo y gracias

    domingo, 23 de enero de 2011 0:46

Todas las respuestas

  • Hola Enrique,

    Que fallo te dá exactamente?

    Llega a ejecutarse el handler OnNavigatedTo?

    Has probado a poner un breakpoint e ir trazando el código?

    Un saludo!


    MCTS .NET Framework 3.5 Windows Forms Application Development
    MCTS .NET Framework 3.5 Windows Presentation Foundation
    Visita mi Blog en Geeks.ms
    Sigueme en Twitter
    sábado, 22 de enero de 2011 21:34
    Moderador
  • Da error

     

    Salta despues de esa linea Al debugger break

     

    Ademas una vez me ha dicho que no se encontraba Page3.xaml

     

    Es raro, porque yo copio y pego la sentencia

    sábado, 22 de enero de 2011 21:46
  • Hola Enrique

    "Da Error"

    Ese no es el texto del error que te está dando Visual Studio, he comprobado el funcionamiento del NavigationService y NavigationContext y lo estás usando de forma correcta, cuando salta la pantalla de error de Visual Studio te dará un mensaje del error que ha sucedido y tienes un botón "View Details" donde puedes ver la InnerException, sin esos datos es virtualmente imposible ayudarte.


    MCTS .NET Framework 3.5 Windows Forms Application Development
    MCTS .NET Framework 3.5 Windows Presentation Foundation
    Visita mi Blog en Geeks.ms
    Sigueme en Twitter
    sábado, 22 de enero de 2011 22:08
    Moderador
  • Hola, perdona por la brevedad de mi explicacion, es que me marchaba y no he podido escribirlo mejor

     

     

      Private Sub RootFrame_NavigationFailed(ByVal sender As Object, ByVal e As NavigationFailedEventArgs)

            If Diagnostics.Debugger.IsAttached Then

                ' A navigation has failed; break into the debugger

                Diagnostics.Debugger.Break()

            End If

        End Sub

     

     

    Se para justo en la linea Diagnostics....break

     

    He añadido 

    MessageBox.Show(e.Exception.Message) y me dice en la pantalla del movil

     

    NO XAML was found at the location '/page3.xaml'

     

    Es rarisimo

    domingo, 23 de enero de 2011 0:38
  • Me autocontesto, a veces parece que es bueno el dejar una tarea y volver al rato, para refrescar la mente

     

    Lo comento por si a alguien le pasa. 

     

    Despues de poner el MessageBox me he dado cuenta de que parece que no veia la pagina 3. Me he metido en la carpeta Debug del proyecto y la he borrado entera. AL volver a generar, la Pagina 3.g.i ya no aparecia con lo que he ido al explorador de proyectos.

     

    El caso es que le he dado al boton derecho sobre Page3.xaml y habia una opcion "Incluir en el proyecto". La he marcado, he generado y ya funciona

     

    Un saludo y gracias

    domingo, 23 de enero de 2011 0:46