Могу ли я сделать TextBlock кликабельным - на основе результатов анализа XML? - PullRequest
0 голосов
/ 20 августа 2011

У меня есть панель стека с несколькими текстовыми блоками, которые связаны с проанализированными результатами из файла XML.

Я хотел бы, чтобы у каждого результата было событие onlick, которое затем связывалось бы с дополнительной информациейили даже поле message.show, но оно должно использовать значение из отображаемых результатов.

Это раздел .Xaml для списка, в котором результаты не отображаются.)

<ListBox Height="435"
         HorizontalAlignment="Left"
         Name="TradeSearch1"
         VerticalAlignment="Top"
         Width="397"
         Grid.ColumnSpan="3"
         Margin="0,63,0,0">
<ListBox.ItemTemplate>
    <DataTemplate>
        <StackPanel Orientation="Horizontal"
                    Height="200">
            <Image Source="{Binding ImageSource}"
                   Height="150" Width="150"
                   VerticalAlignment="Top"
                   Margin="0,10,8,0"/>
            <StackPanel Width="370" >
                <TextBlock Text="{Binding Title}"
                           TextWrapping="Wrap"
                           Foreground="#FFE51A1A"
                           FontSize="16" />
                <TextBlock Text="{Binding PriceDisplay}" 
                           TextWrapping="Wrap" 
                           FontSize="20" 
                           Foreground="Black" />
                <TextBlock Text="{Binding ListingId}" 
                           TextWrapping="Wrap" 
                           FontSize="20" 
                           Foreground="Black" />
                <TextBlock Text="{Binding Region}" 
                           TextWrapping="Wrap" 
                           FontSize="18" 
                           Foreground="Black" />
            </StackPanel>
        </StackPanel>
    </DataTemplate>
</ListBox.ItemTemplate>

Один из текстовых блоков возвращает значение для (ListingID).в идеале, когда пользователь щелкает этот результат, он будет перенаправлен на другую страницу, на которой будет отображаться больше результатов, основанных на форме LIstingID.

Идентификатор списка: 400332970

Есть ли способ перенестиэто значение для другой страницы и использовать его в чем-то вроде этого?Там, где ListingID.XMl будет перечислять ID из результата onClick.

WebClient Trademe = new WebClient();
Trademe.DownloadStringCompleted += new DownloadStringCompletedEventHandler(Trademe_DownloadStringCompleted);
Trademe.DownloadStringAsync(new Uri("http://api.trademe.co.nz/v1/Listings/" + ListingID.xml));

Извините, если это сбивает с толку, я попытался объяснить как можно лучше.Надеюсь, у кого-то есть представление о чем я говорю.

1 Ответ

2 голосов
/ 20 августа 2011

Если я правильно понимаю, вы можете использовать QueryString для передачи информации на следующую страницу.

//handle the selectionchanged event (replace 'myObject' with your object type)
void ListBoxSelectionChanged(object sender, SelectionChangedEventArgs args)
{
    var lbi = ((sender as ListBox).SelectedItem as myObject);
    if(lbi != null)
    {
        string id = lbi.ListingId.ToString();
        NavigationService.Navigate("/NewPage.xaml?listingid=" + id, UriKind.Relative));    
    }
}

Затем на странице NewPage.xaml вы можетепрочитайте значение строки запроса.(Вы можете добавить проверки ошибок или использовать QueryString.TryGetValue вместо этого, чтобы избежать исключений).

string id = NavigationContext.QueryString["listingid"];

Вы можете использовать id как часть загруженного вами кода загрузки.

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