为什么LongListSelector selectedItem什么都没有?

时间:2013-08-29 08:16:08

标签: vb.net windows-phone-8 windows-phone

我不确定我试图实现的目标是否正确完成。

在Windows Phone 8上,我希望应用程序执行以下操作:

屏幕1:在列表中显示字母(A,B,C,D等)。

屏幕2:当用户从屏幕1的列表中选择项目时,屏幕2将显示名称以该字母字符开头的客户(它将联系Web服务并按所选字符获取项目)

屏幕3:从屏幕2中选择名称将显示该客户的详细信息(同样,它将联系Web服务并按所选名称获取详细信息)

所以我开始关注本教程http://msdn.microsoft.com/en-US/library/windowsphone/develop/jj244365(v=vs.105).aspx

这会按预期显示列表,但在选择项目时,SelectionChanged事件不会启动。围绕它进行研究似乎无法使用LongListSelector来选择单击的字母字符。所以我使用了tap事件,但SelectedItem总是没有。

Private Sub LLSAlpha_SelectionChanged(sender As Object, e As SelectionChangedEventArgs)
    If LLSAlpha Is Nothing Then
        If LLSAlpha.SelectedItem.ToString = "A" Then
            MessageBox.Show("A was selected")
        End If
    End If
End Sub

现在我已经阅读了某些地方我必须使用navigateURL方法,但是我无法获得正确的事件(允许我定位被点击/选定项目的事件)来编写该代码?

我是否遗漏了某些东西,或者我应该使用其他控件来实现我想要做的事情?我可以参考的任何文章?任何帮助表示赞赏。

编辑:

我的XAML

<phone:LongListSelector x:Name="LLSAlpha" LayoutMode="Grid" GridCellSize="200,200" 
                                ItemTemplate="{StaticResource AlphaTemplate}" ItemsSource="{Binding Listpictures}" 
                                IsGroupingEnabled="True" GroupHeaderTemplate="{StaticResource groupHeaderTemplate}" 
                                JumpListStyle="{StaticResource imageJumpListStyle}"
                                SelectionChanged="LLSAlpha_SelectionChanged"/>

1 个答案:

答案 0 :(得分:0)

终于解决了这个问题。这是我使用的代码

现在将一个ItemTemplates和DataTemplate添加到LLS,最后添加一个TextBlock(以显示该值)

然后导航到另一个页面,在LLS的SelectionChanged事件下有以下代码(从C#转换的代码)

If LLS.SelectedItem Is Nothing Then
Return

NavigationService.Navigate(New URI("Page.xaml?Item=" & TryCast(LLS.SelectedItem,     CustomerItem).ID, UriKind.Relative))

LLS.SelectedItem = Nothing
End If

在接收项目的页面上,在OnNavigatedTo

If DataContext Is Nothing
Dim SelectedIndex as string 

If NavigationContext.QueryString.TryGetValue("Item", SelectedIndex)
dim Index as Integer= Cint.Parse(SelectedIndex)

'Do whatever you want here

End If

End If