如何通過代碼(在.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. 的JavaScript單擊事件處理
- 3. jQuery的單擊事件處理
- 4. 與變量處理中單擊事件
- 5. 複選框並單擊事件處理
- 6. Android處理點擊事件
- 7. 多個控件單擊由一個事件處理的事件
- 8. 事件處理程序事件處理程序不調用上單擊按鈕
- 9. IOS處理事件單擊按鈕在tableView單元格
- 10. 單擊事件處理程序與自定義控件按鈕
- 11. 確定MouseListener中單擊的JPanel組件。事件處理
- 12. GaugeControl雙擊事件處理程序
- 13. jQuery如何處理點擊事件?
- 14. '點擊()'的click事件處理
- 15. 點擊事件處理程序
- 16. 窗口事件處理請點擊
- 17. Vue.js處理多個點擊事件
- 18. 在SmartGWT RibbonBar上處理點擊事件
- 19. 處理點擊事件的問題
- 20. Android的listview處理點擊事件
- 21. UITableViewRowAction處理單擊
- 22. 用JavaScript處理表單提交事件,避免「表單處理」
- 23. 單擊事件處理函數的引導按鈕選擇器
- 24. 如何處理jQuery網格中的行單擊事件
- 25. 取得按鈕單擊事件處理火災不止一次
- 26. 處理圖像單擊ContentEditable區域中的事件
- 27. Xamarin DataPicker如何處理完成的按鈕單擊事件
- 28. 如何處理按鈕在jQuery中單擊事件?
- 29. jQuery附加按鈕單擊事件處理程序不工作
- 30. 如何在KnockoutJs單擊事件處理程序中使用event.preventDefault?
非常有幫助,謝謝! – JohnC 2011-06-02 18:27:22