【发布时间】:2020-04-23 14:48:40
【问题描述】:
我有一个绑定到ListView 的SearchResult 类。我想要做的是突出显示搜索结果文本中与用户输入的查询匹配的 sn-p。
相关的 XAML 看起来像这样(省略绒毛):
<DataTemplate>
<StackPanel>
<!-- Search result -->
<RichTextBlock>
<!-- Would this idea work? -->
<RichTextBlock.TextHighlighters>
<TextHighlighter>
<TextHighlighter.Ranges>
<!-- Add the bound range here-->
<!-- {Binding Range} or text highlighter or something -->
</TextHighlighter.Ranges>
</TextHighlighter>
</RichTextBlock.TextHighlighters>
<Paragraph>
<Run Text="{Binding Text}"></Run>
</Paragraph>
</RichTextBlock>
</StackPanel>
</DataTemplate>
我可以添加SearchResult 类中的任何属性,无论是TextHighlighter 还是TextRange。我只是不知道 XAML 语法是否允许插入该值。
我也考虑过在代码中执行此操作,但我确实希望将搜索项模板保留在 XAML 中,而不是将其放在 C# 中。但是,可以执行lvSearchResults.Items[i]... 之类的操作,或者将其放入荧光笔或范围内。我只是暂时想不出正确的方法。
【问题讨论】: