此作品普遍:
<DataGridHyperlinkColumn Binding="{Binding Link}">
<DataGridHyperlinkColumn.ElementStyle>
<Style>
<EventSetter Event="Hyperlink.Click" Handler="DG_Hyperlink_Click"/>
</Style>
</DataGridHyperlinkColumn.ElementStyle>
</DataGridHyperlinkColumn>
private void DG_Hyperlink_Click(object sender, RoutedEventArgs e)
{
Hyperlink link = (Hyperlink)e.OriginalSource;
Process.Start(link.NavigateUri.AbsoluteUri);
}
如果URI指向一个网站,它会使用默认的Web浏览器中打开,如果是,将在资源管理器中打开一个文件夹,如果它是一个文件,它将与其关联的默认应用程序打开。
要为你的财产必须是Uri
类型所以DataGridHyperlinkColumn
生成的自动生成的列使用此。然后,您可以通过将样式放置在DataGrid.Resources
中:
<DataGrid.Resources>
<Style TargetType="Hyperlink">
<EventSetter Event="Click" Handler="DG_Hyperlink_Click"/>
</Style>
</DataGrid.Resources>
美丽,谢谢!顺便说一下,当这些列自动生成时(从我的案例中的数据表),这是如何完成的? – Yoni 2011-04-24 15:26:53
我添加了一些关于这个到我的答案的信息,但我不知道这是否适用于'DataTables',因为我从来没有使用它们(你需要有一个'Uri'属性)。 – 2011-04-25 01:04:34
是否可以指定一个绑定以外的链接? – flux 2016-04-14 18:30:14