2009-04-02 5 views
1

Я создаю приложение простого словаря с помощью WPF.WPF Обрабатывать ссылки внутри FlowDocument

Я использую шаблон MVVM, привязку данных и FlowDocument для отображения слов пользователю.

Пользовательский интерфейс состоит из двух элементов управления: ListBox и FlowDocumentScrollViewer.

словарь данные поступают из файла XML, формат этой строки может выглядеть следующим образом

<b>Word</b> - Some description. Another <i>description</i>. Reference <ref id="123">related word</ref> 

Порядок, HTML и ссылочных элементов не определен.

Я разбираю HTML-строку, превращаю ее в XAML, затем из XAML создаю объект FlowDocument и привязываю его к свойству Document элемента управления FlowDocumentScrollViewer.

Проблема возникает, когда мне нужно указать ссылку. элементы. (мое требование - когда пользователь нажимает ссылку на ссылку, выбранное слово выбрано в элементе управления ListBox и показано в FlowDocumentScrollViewer)

Мой вопрос заключается в способе динамического создания элементов управления «гиперссылки» (с прикрепленными событиями или командами), которые будет использовать словарь для ссылки на слова в словаре.

Можно ли решить эту проблему вообще?

ответ

1

Существует текстовый элемент гиперссылки, который имеет свойство Command и событие Click. Он ведет себя как кнопка, но используется внутри FlowDocuments. Вы можете использовать любой метод для достижения того, что вам нужно, но я предпочитаю Команды. Особенно, если вы реализуете это с использованием шаблона MVVM, как вы отметили ...

+0

Спасибо, что он работает. Команда Hyperlink + решила проблему. –