如何通过代码(在.xaml.cs文件中)以编程方式处理DataGridHyperlinkColumn的单击事件。处理DataGridHyperlinkColumn单击事件
9
A
回答
10
使用这样的:
<dg:DataGridHyperlinkColumn.ElementStyle>
<Style TargetType="TextBlock">
<EventSetter Event="Hyperlink.Click" Handler="OnHyperlinkClick" />
</Style>
</dg:DataGridHyperlinkColumn.ElementStyle>
</dg:DataGridHyperlinkColumn>
14
如果你只是想浏览的浏览器的链接,这是一个简单的写一个这样的处理程序:
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);
}
如果你想以编程方式创建超链接栏,并绑定到它的Click事件,你可以这样做:
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);
这stack overflow answer也对WPF工具包的数据GridHyperlinkColumn好消息,非常值得一试。
相关问题
- 1. 处理菜单项单击事件 - Android
- 2. 单击JQ事件处理程序
- 3. jQuery的单击事件处理
- 4. AmStockCharts - 单击事件处理程序
- 5. jquery父子单击事件处理
- 6. 复选框并单击事件处理
- 7. 使用Gridster处理单击事件
- 8. 的JavaScript单击事件处理
- 9. 与变量处理中单击事件
- 10. D3单击事件处理程序
- 11. 在django-tables2中处理单击事件
- 12. Android处理点击事件
- 13. 多个控件单击由一个事件处理的事件
- 14. 委托ItemClick事件处理到孩子的单击事件处理(scaleform)
- 15. 事件处理程序事件处理程序不调用上单击按钮
- 16. 在pygtk中处理双击和单击事件
- 17. 单击事件处理程序触发就绪,但不点击
- 18. 抓斗属性点击 - 使用上的单击事件处理
- 19. d3.js的“单击”事件处理运行功能,无需点击事件
- 20. IOS处理事件单击按钮在tableView单元格
- 21. 单击单元格时DefaultTableModel上的Java事件处理
- 22. 使用Spinner处理GridView单元格中的单击事件
- 23. 在角甘特图上处理单元格单击事件
- 24. 如何在单击组件外部时处理事件?
- 25. 确定MouseListener中单击的JPanel组件。事件处理
- 26. 单击事件处理程序与自定义控件按钮
- 27. 如何处理自定义gwt小部件的单击事件
- 28. 在SmartGWT RibbonBar上处理点击事件
- 29. 如何处理DataGridViewLinkColumn的点击事件
- 30. '点击()'的click事件处理
非常有帮助,谢谢! – JohnC 2011-06-02 18:27:22