Если вы просто хотите перейти по ссылке в браузере, это просто, как написать обработчик, подобный этому:
void EventSetter_OnHandler(object sender, RoutedEventArgs e)
{
var destination = ((Hyperlink) e.OriginalSource).NavigateUri;
Process.Start(destination.ToString());
}
Если вы вместо этого хотите выполнить какое-то пользовательское действие при навигации, используя информацию в соответствующей строке, вам потребуется доступ к контексту данных гиперссылки:
void EventSetter_OnHandler(object sender, RoutedEventArgs e)
{
var rowData = ((Hyperlink) e.OriginalSource).DataContext as User;
navigationService.NavigateToUserRecordForId(rowData.Id);
}
Если вы хотите программно создать столбец гиперссылки и привязать его к событию клика, вы можете сделать это:
var style = new Style(typeof(TextBlock));
style.Setters.Add(new EventSetter(Hyperlink.ClickEvent, (RoutedEventHandler)EventSetter_OnHandler));
var column = new DataGridHyperlinkColumn { Header = "User", Binding = new Binding("ViewUserLink"), ElementStyle = style };
dataGrid1.Columns.Add(column);
Этот ответ о переполнении стека также содержит хорошую информацию о наборе данных GridHyperlinkColumn инструментария WPF, который стоит проверить.