我有一个要链接到超链接的链接列表,锚标记不起作用。还有另一种方法可以将字符串转换为链接吗?我正在使用<ItemsControl>
绑定到LinkList.Link
这是我尝试过的:
for (int i = 0; i < this.LinkList.Link.Count; i++)
{
var link = this.LinkList.Link[i];
this.LinkList.Link[i] = "<a href=\"" + link + "\">" + link + "</a>";
//String.Format("<a href=\"{0}\">{0}</a>", link );
}
(在评论中)两者均无效。我指的是:Modify List<string> to convert contents to hyperlinks
答案 0 :(得分:1)
如何在ItemsControl的ItemTemplate中使用超链接,如下所示:
<ItemsControl ItemsSource="{Binding LinkList}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock>
<Hyperlink NavigateUri="{Binding Link}" RequestNavigate="Hyperlink_RequestNavigate">
<TextBlock Text="{Binding Link}" />
</Hyperlink>
</TextBlock>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
如您所见,超链接上还有一个事件“ RequestNavigate”,该事件的代码背后有一个处理程序,如下所示:
private void Hyperlink_RequestNavigate(object sender, RequestNavigateEventArgs e)
{
System.Diagnostics.Process.Start(e.Uri.AbsoluteUri);
e.Handled = true;
}
当然,您也可以绑定“超链接”命令以使用MVVM模式进行导航。
希望有帮助。
答案 1 :(得分:0)
<ListBox ItemsSource="{Binding LinkList, Mode=OneWay}">
<ListBox.ItemTemplate>
<DataTemplate>
<Hyperlink NavigateUri="{Binding Link}">
Link Text
</Hyperlink>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
您可能需要将XAML模板用作绑定到URL的超链接。