2009-04-02 11 views
1

Je construis une application de dictionnaire simple en utilisant WPF. J'utilise MVVM pattern, databinding et FlowDocument pour afficher les mots à l'utilisateur. L'interface utilisateur se compose de deux contrôles: ListBox et FlowDocumentScrollViewer.WPF Handle links à l'intérieur de FlowDocument

Dictionnaire de données provient de fichier XML, le format de cette chaîne peut ressembler à ceci

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

L'ordre des éléments HTML et de référence ne sont pas définis. J'analyse la chaîne HTML, la transforme en XAML, puis crée un objet FlowDocument à partir de XAML et le lie à la propriété Document du contrôle FlowDocumentScrollViewer.

Le problème se pose lorsque j'ai besoin de lier ref. éléments. (ma demande est lorsque l'utilisateur clique sur le lien de référence, le mot référencé est sélectionné dans le contrôle ListBox et affiché dans FlowDocumentScrollViewer)

Ma question est là un moyen de créer dynamiquement des commandes de style "lien hypertexte" (avec événement ou commandes jointes) prendrait l'utilisateur au mot référencé dans le dictionnaire.

Est-il possible de résoudre ce problème du tout?

Répondre

1

L'élément de texte Lien hypertexte possède une propriété Command et un événement Click. Il se comporte à peu près comme un bouton, mais il est utilisé dans FlowDocuments. Vous pouvez utiliser l'une ou l'autre méthode pour atteindre ce que vous recherchez, mais j'ai tendance à préférer les commandes. Surtout si vous implémentez cela en utilisant le modèle MVVM comme vous l'avez tagué ...

+0

Merci de l'avoir fait fonctionner. L'hyperlien + commande a résolu le problème. –