2009-11-18 16 views

Odpowiedz

10

użyj:

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

Jeśli chcesz po prostu poruszać przeglądarkę do linku, to proste jak pisanie obsługi takiego:

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

Jeśli zamiast tego chcesz wziąć jakiś niestandardowe działanie po nawigacji, korzystając z informacji w powiązanym wierszu, musisz uzyskać dostęp do kontekstu danych hiperłącza:

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

Jeśli chcesz programowo utworzyć kolumnę hiperłącza, a wiąże się to kliknij zdarzenie, można to zrobić:

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

Ten stack overflow answer ma również dobre informacje na WPF Toolkit Danych GridHyperlinkColumn, dobrze warto sprawdzić.

+0

Bardzo pomocna, dziękuję! – JohnC

Powiązane problemy