WP8 LongListSelector - 导航到不同的页面(WP8 LongListSelec

2019-11-02 18:34发布

我最近创建了一个LongListSelector为我的Windows Phone 8应用。 不过我想现在实现的是导航到另一个页面,当用户点击一个项目,但我不知道放什么东西在我的代码,也我不是100%在何处,我应该插入我的URI的每一个人页。 有谁知道我能做到这一点?

我将不胜感激,如果有人可以帮助我这件事。

非常感谢。

Partial Public Class Station_Chooser
    Inherits PhoneApplicationPage

    Public Sub New()
        InitializeComponent()

        Dim source As New List(Of Glasgow)()
        source.Add(New Glasgow("Bridge Street"))
        source.Add(New Glasgow("Buchanan Street"))
        source.Add(New Glasgow("Cessnock"))
        source.Add(New Glasgow("Cowcaddens"))
        source.Add(New Glasgow("Govan"))
        source.Add(New Glasgow("Hillhead"))
        source.Add(New Glasgow("Ibrox"))
        source.Add(New Glasgow("Kelvinbridge"))
        source.Add(New Glasgow("Kelvinhall"))
        source.Add(New Glasgow("Kinning Park"))
        source.Add(New Glasgow("Patrick"))
        source.Add(New Glasgow("Shields Road"))
        source.Add(New Glasgow("St Enoch"))
        source.Add(New Glasgow("St George's Cross"))
        source.Add(New Glasgow("West Street"))


        Dim DataSource As List(Of AlphaKeyGroup(Of Glasgow)) = AlphaKeyGroup(Of Glasgow).CreateGroups(source, System.Threading.Thread.CurrentThread.CurrentUICulture, Function(s As Glasgow)
                                                                                                                                                                          Return s.Station
                                                                                                                                                                      End Function, True)
        GlasgowSubway.ItemsSource = DataSource

    End Sub

    Public Class Glasgow
        Public Property Station() As String
            Get
                Return m_Station
            End Get
            Set(value As String)
                m_Station = value
            End Set
        End Property
        Private m_Station As String

        Public Sub New(station As String)
            Me.Station = station
        End Sub
    End Class

End Class

Answer 1:

有一些方法可以做到这一点。 他们中的一个在显示这太问题 ,也许不是最好的或最美丽的方式,而是一个非常简单的问题。

附加事件处理程序SelectionChanged ,在处理导航到新的页面中添加命令,设置SelectedItem = null

我认为目标页面是相同页面中选择任何项目,只有不同的内容/显示的数据。 您需要在URI参数传递所选项目的签名,以使目标页相应显示信息。 例如 :

NavigationService.Navigate(New Uri("/nextpage.xaml?selectedStation=" & selectedItem.Station, UriKind.Relative))

更新:

当你明确了目标页面会为每个项目不同,我以前的答案仍然有效。 才有了后来的部分需要修改,不使用URI参数。 所以这就是我的想法。 添加其他财产Glasgow类,说出来StationId 。 在初始化:

//the second parameter is StationId value
source.Add(New Glasgow("Bridge Street", "BridgeStreet"))

然后将其命名与模式StationId.xaml每一页,所以桥街页面应该是BridgeStreet.xaml 。 就这样,在SelectionChanged事件处理程序,您可以导航到相应的页面,而无需使用Select Case selectedItem.Station ...

NavigationService.Navigate(New Uri(selectedItem.StationId & ".xaml", UriKind.Relative))

注意:在模型中有一个以上的属性( StationStationId在这种情况下)要求您指定要显示的属性LongListSelector 。 检查此链接了解如何,如果你还不知道。



文章来源: WP8 LongListSelector - Navigating to different pages