我不确定我试图实现的目标是否正确完成。
在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"/>
答案 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