私は最初のWPFアプリケーションで作業しています。今日でも少しのレンガの壁にぶつかった。クリック可能なリンクを使用したListBoxへのバインド
私のアプリは、検索エンジンの検索とリンクの取得というウェブ検索ユーザーの役割を果たしています。私はクリック可能な形式でリンクを表示したいと思います。結果としてstring[]
のリンクをListBox
にバインドし、そこにHyperlink
を入れると思いました。いくつかのグーグル後、ここに私が思い付いたものです:
<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
ハンドラを追加しようとしました。私は間違って何をしていますか?
すごくお返事ありがとうございました! ListBox内でDataTemplateを定義することができない理由を理解していないのですがしかし、私が言ったように、これは私の最初のWPFアプリです。 – hackerhasid