Wpf 处理DataGridHyperlinkColumn单击事件
如何通过代码(在.xaml.cs文件中)以编程方式处理DataGridHyperlinkColumn的单击事件。使用以下方法:Wpf 处理DataGridHyperlinkColumn单击事件,wpf,datagrid,Wpf,Datagrid,如何通过代码(在.xaml.cs文件中)以编程方式处理DataGridHyperlinkColumn的单击事件。使用以下方法: <dg:DataGridHyperlinkColumn.ElementStyle> <Style TargetType="TextBlock"> <EventSetter Event="Hyperlink.Click" Handler="OnHyperlinkClick" /> </Style> </dg:DataG
<dg:DataGridHyperlinkColumn.ElementStyle>
<Style TargetType="TextBlock">
<EventSetter Event="Hyperlink.Click" Handler="OnHyperlinkClick" />
</Style>
</dg:DataGridHyperlinkColumn.ElementStyle>
</dg:DataGridHyperlinkColumn>
如果您只想将浏览器导航到链接,只需编写如下处理程序:
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);
这也提供了关于WPF工具包的DataGridHyperlinkColumn的好信息,非常值得一看