此作品普遍:
<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