WPF データグリッドでハイパーリンククリックを処理
[WPF Tips]
1.状況
DataGrid コントロールのセルにハイパーリンクを配置したい。
2.対応
3.参考
4.サンプル
DataGridのカラムを、DataGridHyperlinkColumn とし、イベントハンドラを記述する。
<DataGrid ItemsSource="{Binding Items}"> <DataGrid.Columns> <DataGridHyperlinkColumn Header="URL" Binding="{Binding Url}"> <DataGridHyperlinkColumn.ElementStyle> <Style> <EventSetter Event="Hyperlink.Click" Handler="Hyperlink_Click"/> </Style> </DataGridHyperlinkColumn.ElementStyle> </DataGridHyperlinkColumn> </DataGrid>
イベントハンドラの処理を記述する。
/// /// ハイパーリンクをクリックしたときの処理 /// private void Hyperlink_Click(object sender, RoutedEventArgs e) { try { Hyperlink link = (Hyperlink)e.OriginalSource; Process.Start(link.NavigateUri.AbsoluteUri); } catch (Exception) { } }