2009-08-06 115 views

回答

2

這是幾個步驟去那裏,但你可以做到這一點。

  1. 您必須使用可綁定的富文本框,而不是使用WPF自帶的綁定功能。這裏的詳細信息:http://michaelsync.net/2009/06/09/bindable-wpf-richtext-editor-with-xamlhtml-convertor

  2. 一旦你有了,你將有一個富文本編輯器,你可以綁定到ViewModel中的FlowDocument。

  3. 當你的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中感覺不對,但這是一條路。

+0

我正在嘗試這個,但沒有任何反應,當我點擊一個鏈接!光標甚至不會變成手......任何幫助? – bluebit 2009-08-13 09:08:10

+0

我想你可能會錯過AddHandler調用?我改變了格式,所以很容易看到。 – 2009-08-13 15:54:45

+0

非常感謝你!它工作,但是當我點擊超鏈接URL顯示兩次!怎麼了? – 2013-05-13 12:00:56

1

您會發現很多情況下無法使用wpf數據綁定。在這些場景中,您可以創建一個新的控件(例如從RichTextBox繼承)並提供缺失的依賴項屬性,以便您可以使用數據綁定。

但是,創建一個新的控件來處理簡單的場景效率不高。不禁止在View的代碼背後實現代碼,這通常比創建新控件更有意義。

一個具體的例子,如何可以做到這一點的項目視圖模型樣本中所示:

WPF應用程序框架(WAF)

http://waf.codeplex.com

相關問題