如何通過代碼(在.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