Ich möchte Suchergebnisse innerhalb eines WPF ItemsControl mit den Suchbegriffen hervorgehoben anzeigen.
Die Suchmaschine, die ich benutze, Lucene.Net mit dem Highlighter-Plugin, gibt Zeichenketten mit den Suchbegriffen zurück, die wie folgt markiert sind:
...these <Bold>results</Bold> were found to be statistically significant...
Ich kann das Highlighter-Plugin anweisen, einen beliebigen Satz von Markup-Tags zu verwenden, um einen Suchbegriff zu umschließen. Ich bin nicht beschränkt auf die <Bold>
Tag im obigen Beispiel. Für WPF, würde ich wahrscheinlich machen diese <Run/>
Elemente mit einem angehängten Stil.
Die Herausforderung besteht darin, die Zeichenfolge zu nehmen, die mir gegeben wurde, und sie zu rendern, als ob es "tatsächliche XAML" innerhalb der Datenvorlage ist, die ich für Suchergebnisse verwende. Mit anderen Worten, ich möchte etwas wie dieses zu sehen:
...diese Ergebnisse wurden als statistisch signifikant eingestuft...
Aber ich kämpfe mit, wie man Datenbindung mit dynamischen Rendering einer XAML-Zeichenfolge innerhalb des Datatemplates zu kombinieren. Was ist der beste Ansatz hier?
- Verwenden Sie ein UserControl, um jedes Suchergebnis anzuzeigen und rufen Sie
XamlReader.Load()
aus dem Code dahinter? - Konstruieren Sie ein FlowDocument, das die Suchergebnisse enthält, und zeigen Sie die Ergebnisse mit einem FlowDocumentScrollViewer?
- Etwas ganz anderes...?