使用MVVM模式,如何进行动态绑定(bind)
一个ICommand到一个内部超链接的click事件
RichTextBox?

最佳答案

到达那里只有几个步骤,但是您可以做到。

  • 您必须使用一个可绑定(bind)的富文本框,而不是WPF附带的那个文本框,您不能绑定(bind)该文本框。此处的详细信息:http://michaelsync.net/2009/06/09/bindable-wpf-richtext-editor-with-xamlhtml-convertor
  • 有了它,您将拥有一个Rich Text Editor,您可以将其绑定(bind)到ViewModel中的FlowDocument。
  • 创建FlowDocument时,请在ViewModel中为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中感觉不对,但这是必须的。

    10-08 18:18