通過MVVM模式,我們如何將一個ICommand動態綁定到RichTextBox內的超鏈接的單擊事件?如何將richtextbox中的WPF超鏈接綁定到命令?
回答
這是幾個步驟去那裏,但你可以做到這一點。
您必須使用可綁定的富文本框,而不是使用WPF自帶的綁定功能。這裏的詳細信息:http://michaelsync.net/2009/06/09/bindable-wpf-richtext-editor-with-xamlhtml-convertor
一旦你有了,你將有一個富文本編輯器,你可以綁定到ViewModel中的FlowDocument。
當你的FlowDocument創建,聯播的Hyperlink.ClickEvent處理程序在您的視圖模型:
下面是增加了處理器的FlowDoc
TheDocument.AddHandler(Hyperlink.ClickEvent,
new RoutedEventHandler(HandleHyperlinkClick));
//Here's the handler definition
private void HandleHyperlinkClick(object sender, RoutedEventArgs args)
{
Hyperlink link = args.Source as Hyperlink;
//...
}
這是通話只有我見過的東西。 FlowDocuments有點奇怪,因爲它們是一種數據類型和一種視覺元素,所以從某種意義上說,讓它駐留在ViewModel中感覺不對,但這是一條路。
我正在嘗試這個,但沒有任何反應,當我點擊一個鏈接!光標甚至不會變成手......任何幫助? – bluebit 2009-08-13 09:08:10
我想你可能會錯過AddHandler調用?我改變了格式,所以很容易看到。 – 2009-08-13 15:54:45
非常感謝你!它工作,但是當我點擊超鏈接URL顯示兩次!怎麼了? – 2013-05-13 12:00:56
您會發現很多情況下無法使用wpf數據綁定。在這些場景中,您可以創建一個新的控件(例如從RichTextBox繼承)並提供缺失的依賴項屬性,以便您可以使用數據綁定。
但是,創建一個新的控件來處理簡單的場景效率不高。不禁止在View的代碼背後實現代碼,這通常比創建新控件更有意義。
一個具體的例子,如何可以做到這一點的項目視圖模型樣本中所示:
WPF應用程序框架(WAF)
- 1. 將命令綁定到WPF中的ComboBoxItem
- 2. 將ComboBoxItem綁定到WPF中的命令?
- 3. 如何將文本轉換爲WPF RichTextBox FlowDocument中的超鏈接?
- 4. 檢測WPF RichTextBox中的超鏈接
- 5. 在WPF Richtextbox中的超鏈接
- 6. RichTextBox超鏈接
- 7. 如何將WPF按鈕綁定到ViewModelBase中的命令?
- 8. 如何將命令綁定到XAML中的WPF Telerik radMenuItem?
- 9. WPF:將ContextMenu綁定到MVVM命令
- 10. 將ViewModel命令綁定到WPF DataGrid
- 11. 將文本替換爲WPF RichTextBox中的超鏈接
- 12. WPF命令綁定
- 13. WPF綁定命令
- 14. 如何在運行時從WPF RichTextbox中刪除超鏈接?
- 15. 綁定到gridview中的超鏈接
- 16. 如何將命令綁定到祖先datacontext? WPF :: MVVM
- 17. 如何將命令綁定到一個菜單項在C#WPF
- 18. 如何將WPF命令綁定到MouseEnter事件?
- 19. 如何將一個命令綁定到MenuItem(WPF)?
- 20. WPF MenuItem:如何將SubMenuItem命令綁定到其父菜單項
- 21. WPF:綁定到來自ControlTemplate的命令
- 22. WPF命令綁定到MVVM的DataItemTemplate
- 23. 如何將命令綁定到按鈕
- 24. wpf中的自定義命令綁定
- 25. 如何將命令綁定到例如在WPF的ControlTemplate中的鼠標右鍵?
- 26. 如何更換鏈接RichTextBox中(Windows phone)系統,以超鏈接
- 27. 將WPF命令綁定到C#XAML中的ViewModel屬性
- 28. 將WPF快捷鍵綁定到ViewModel中的命令
- 29. WPF圖像命令綁定
- 30. WPF:綁定和命令
如何被填充的文本? – 2009-08-06 13:22:44