2009-11-18 13 views

Respuesta

10

uso esto:

<dg:DataGridHyperlinkColumn.ElementStyle> 
<Style TargetType="TextBlock"> 
<EventSetter Event="Hyperlink.Click" Handler="OnHyperlinkClick" /> 
</Style> 
</dg:DataGridHyperlinkColumn.ElementStyle> 
</dg:DataGridHyperlinkColumn> 
14

Si lo que desea es navegar por el navegador para el enlace, se trata de un simple como escribir un controlador de la siguiente manera:

void EventSetter_OnHandler(object sender, RoutedEventArgs e) 
{ 
    var destination = ((Hyperlink) e.OriginalSource).NavigateUri; 
    Process.Start(destination.ToString()); 
} 

Si por el contrario desea tomar alguna acción personalizada al navegar, usando información en la fila asociada, entonces necesitará acceder al contexto de datos del hipervínculo:

void EventSetter_OnHandler(object sender, RoutedEventArgs e) 
{ 
    var rowData = ((Hyperlink) e.OriginalSource).DataContext as User; 
    navigationService.NavigateToUserRecordForId(rowData.Id); 
} 

Si desea crear mediante programación una columna de hipervínculo, y se unen a su evento click, usted puede hacer esto:

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); 

Este stack overflow answer también tiene buena información sobre el kit de herramientas de WPF datos GridHyperlinkColumn, vale la pena echarle un vistazo.

+0

Muy útil, ¡gracias! – JohnC

Cuestiones relacionadas