LongListSelector 不工作(不导航到其他页面) [英] LongListSelector not working (not navigating to other pages)

查看:21
本文介绍了LongListSelector 不工作(不导航到其他页面)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经为我的 Windows Phone 7 应用实现了一个 LongListSelector.但是,当我点击一个项目时,它不会导航到所需的页面.有谁知道为什么以及如何解决这个问题?下面是我的代码.每个页面都有自己的 uri,我想导航到不同的页面.

I have implemented a LongListSelector for my Windows Phone 7 app. However when I tap an item it doesn't navigate to the desired page. Does anyone know why and how this can be fixed? Below is my code. Each page has it's own uri and I want to navigate to different pages.

非常感谢所有帮助.

非常感谢

代码:

Imports System.Linq
Imports Microsoft.Phone.Controls

Partial Public Class Victoria_line
    Inherits PhoneApplicationPage
    Public Sub New()

        InitializeComponent()
        Dim source As New List(Of JumpDemo)()

        source.Add(New JumpDemo() With { _
            .Name = "Blackhorse Road", _
            .FareZone = "Fare zone 3", _
            .GroupBy = "b", _
            .Link = "/Lines and Stations/Victoria/Blackhorse_Road_(Victoria).xaml" _
        })
        source.Add(New JumpDemo() With { _
            .Name = "Warren Street", _
            .FareZone = "Fare zone 1", _
            .GroupBy = "w", _
            .Link = "/Lines and Stations/Victoria/Warren_Street_(Victoria).xaml" _
        })


        Dim MygroupBy = From jumpdemo In source _
                      Group jumpdemo By jumpdemo.GroupBy Into c = Group _
                      Order By GroupBy _
                      Select New  _
                      Group(Of JumpDemo)(GroupBy, c)

        Me.Victoria_line.ItemsSource = MygroupBy

    End Sub

    Private Sub Victoria_line_SelectionChanged(ByVal sender As Object, ByVal e As SelectionChangedEventArgs)
        If Victoria_line.SelectedItem = Nothing Then
            Return
        End If

        Dim addressString As String = "/StationPage.xaml"
        Dim pageUri As Uri = New Uri(addressString, UriKind.Relative)
        NavigationService.Navigate(pageUri)

        ' Reset selected item to -1 (no selection)
        Victoria_line.SelectedItem = Nothing
    End Sub

End Class

Public Class Group(Of T)
    Implements IEnumerable(Of T)
    Public Sub New(name As String, items As IEnumerable(Of T))
        Me.Title = name
        Me.Items = New List(Of T)(items)
    End Sub
    Public Overrides Function Equals(obj As Object) As Boolean
        Dim that As Group(Of T) = TryCast(obj, Group(Of T))
        Return (that IsNot Nothing) AndAlso (Me.Title.Equals(that.Title))
    End Function
    Public Property Title() As String
        Get
            Return m_Title
        End Get
        Set(value As String)
            m_Title = value
        End Set
    End Property
    Private m_Title As String
    Public Property Items() As IList(Of T)
        Get
            Return m_Items
        End Get
        Set(value As IList(Of T))
            m_Items = value
        End Set
    End Property
    Private m_Items As IList(Of T)
    Public Function GetEnumerator() As IEnumerator(Of T) Implements IEnumerable(Of T).GetEnumerator
        Return Me.Items.GetEnumerator()
    End Function
    Private Function System_Collections_IEnumerable_GetEnumerator() As System.Collections.IEnumerator Implements System.Collections.IEnumerable.GetEnumerator
        Return Me.Items.GetEnumerator()
    End Function
End Class


Public Class Victoria
    Public Property Name() As String
        Get
            Return m_Name
        End Get
        Set(value As String)
            m_Name = value
        End Set
    End Property
    Private m_Name As String

    Public Property FareZone() As String
        Get
            Return m_FareZone
        End Get
        Set(value As String)
            m_FareZone = value
        End Set
    End Property
    Private m_FareZone As String

    Public Property GroupBy() As String
        Get
            Return m_GroupBy
        End Get
        Set(value As String)
            m_GroupBy = value
        End Set
    End Property
    Private m_GroupBy As String

    Public Property Link() As Uri
        Get
            Return m_Link
        End Get
        Set(value As Uri)
            m_Link = value
        End Set
    End Property
    Private m_Link As Uri
End Class

推荐答案

如果您想要实现的是当您点击某个项目时导航到另一个页面,您应该只在您的 Item DataTemplate 和事件处理程序做这样的事情:

If what you are trying to achieve is navigate to another page when you tap on an item you should just register for the Tap event inside your Item DataTemplate and in the event handler do something like this:

Private Sub Item_Tap(sender As Object, e As GestureEventArgs)
    Dim element As FrameworkElement = TryCast(sender, FrameworkElement)
    Dim item As JumpDemo = TryCast(element.DataContext, JumpDemo)

    Dim addressString As String = item.Link
    Dim pageUri As Uri = New Uri(addressString, UriKind.Relative)
    NavigationService.Navigate(pageUri)

End Sub

这篇关于LongListSelector 不工作(不导航到其他页面)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆