Partial Public Class ProductDetail
Inherits Page
Public Sub New()
InitializeComponent()
End Sub
Protected Overrides Sub OnNavigatedTo(ByVal e As NavigationEventArgs)
GetProductDetail()
SetButtonVisibility()
End Sub
Private Sub SetButtonVisibility()
If (NavigationService.CanGoBack) Then
BackNavButton.Visibility = Visibility.Visible
Else
BackNavButton.Visibility = Visibility.Collapsed
End If
If (NavigationService.CanGoForward) Then
ForwardNavButton.Visibility = Visibility.Visible
Else
ForwardNavButton.Visibility = Visibility.Collapsed
End If
End Sub
Private Sub BackNavButton_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
If (NavigationService.CanGoBack) Then
NavigationService.GoBack()
End If
End Sub
Private Sub ForwardNavButton_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
If (NavigationService.CanGoForward) Then
NavigationService.GoForward()
End If
End Sub
Private Sub GetProductDetail()
Dim productID As String
Dim svcContext As DataServiceContext
svcContext = New DataServiceContext(New Uri("AdventureWorks.svc", _
UriKind.Relative))
If (Me.NavigationContext.QueryString.ContainsKey("ProductId")) Then
productID = Me.NavigationContext.QueryString("ProductId")
Else
productID = App.Current.Resources("FeaturedProductID").ToString()
End If
svcContext.BeginExecute(Of Product)(New Uri("Product(" + productID + ")", _
UriKind.Relative), AddressOf loadProductCallback, svcContext)
End Sub
Private Sub loadProductCallback(ByVal asyncResult As IAsyncResult)
Dim context As DataServiceContext
context = asyncResult.AsyncState
ListBox1.DataContext = context.EndExecute(Of Product)(asyncResult)
End Sub
End Class