Я работаю над своим первым приложением WPF, и оно довольно крутое.Однако сегодня я столкнулся с кирпичной стеной.
Мое приложение выступает в роли поисковика в Интернете - посещает поисковые системы и получает ссылки.Я хотел бы отображать ссылки в интерактивном формате.Я решил связать получившиеся string[]
ссылок с ListBox
и поместить туда Hyperlink
.После некоторого поиска в Google вот что я придумал:
<ListBox Height="200" ItemsSource="{Binding Path=UrlsFound, Mode=OneWay}" Name="listBox1" Width="727">
<ListBox.Resources>
<DataTemplate DataType="String">
<TextBlock>
<Hyperlink NavigateUri="{Binding}" RequestNavigate="Hyperlink_RequestNavigate">
<TextBlock Text="{Binding}" />
</Hyperlink>
</TextBlock>
</DataTemplate>
</ListBox.Resources>
</ListBox>
и в коде:
private void Hyperlink_RequestNavigate(object sender, RequestNavigateEventArgs e)
{
Process.Start(new ProcessStartInfo(e.Uri.AbsoluteUri));
e.Handled = true;
}
Я нашел этот код RequestNavigate
в нескольких местах в Интернете.
Так что все в порядке, и в списке есть все ссылки, но они не кликабельны.Я добавил точку останова на RequestNavigate
, которая не ударилась (тоже попробовал двойной щелчок) и даже попытался добавить обработчик Click
.Что я делаю не так?