Windows Phone 7 Параметр передачи навигации - PullRequest
2 голосов
/ 23 января 2012

У меня есть список, как показано ниже.

<ListBox x:Name="CouponListBox" ItemsSource="{Binding Item}" SelectionChanged="CouponListBox_SelectionChanged">
                    <ListBox.ItemTemplate>
                        <DataTemplate>
                            <StackPanel Orientation="Horizontal">
                                <Image Source="{Binding MerchantImage}" Height="73" Width="73" VerticalAlignment="Top" Margin="0,10,8,0"/>
                                <StackPanel Width="130">
                                    <TextBlock Text="{Binding CustomerName}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}"/>
                                    <TextBlock Text="{Binding MerchantName}" TextWrapping="Wrap" FontSize="20" Foreground="#FFC4C4C4" Padding="10" />
                                    <TextBlock Text="{Binding Distance}" TextWrapping="Wrap" FontSize="16" Foreground="#FFC4C4C4" Padding="10" />
                                    <TextBlock Text="{Binding DistanceInMinutes}" TextWrapping="Wrap" FontSize="16" Foreground="#FFC4C4C4" Padding="10" />
                                </StackPanel>
                            </StackPanel>
                        </DataTemplate>
                    </ListBox.ItemTemplate>
                </ListBox>

И у меня есть событие изменения в файле .cs,

private void CouponListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            // If selected index is -1 (no selection) do nothing
            if (CouponListBox.SelectedIndex == -1)
                return;
            // Navigate to the new page
            System.Diagnostics.Debug.WriteLine("this is a test::" + CouponListBox.SelectedItem.ToString());
            NavigationService.Navigate(new Uri("/DetailsPage.xaml?selectedItem=" + CouponListBox.SelectedIndex, UriKind.Relative));

           // Reset selected index to -1 (no selection)
            CouponListBox.SelectedIndex = -1;
        }

В DetailsPage я мог печатать предметный указатель. Но я хочу, чтобы идентификатор клиента передавался по URL-адресу, например

"/DetailsPage.xaml?selectedItem=" + CouponListBox.SelectedIndex + "&customerId=" + couponId

Может кто-нибудь сказать мне, где я должен включить customerId в мой файл XAML? и тем, кого я могу вызвать в функции.

Спасибо, Картик

1 Ответ

6 голосов
/ 23 января 2012

Используйте это:

if (this.NavigationContext.QueryString.ContainsKey("customerId")) 
{
    string customerId = this.NavigationContext.QueryString["customerId"];
}

if (this.NavigationContext.QueryString.ContainsKey("selectedItem")) 
{
    string selectedItem = this.NavigationContext.QueryString["selectedItem"];
}

в пользовательском контроле Loaded или другом соответствующем событии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...