0

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

在 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 来选择单击了哪个字母字符。所以我使用了点击事件,但 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"/>
4

1 回答 1

0

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

现在向 LLS 添加一个 ItemTemplates 和 DataTemplate 最后添加一个 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
于 2013-09-03T10:36:18.747 回答