【问题标题】:Way to implementing Search functinality on a Window在窗口上实现搜索功能的方法
【发布时间】:2011-03-03 22:23:16
【问题描述】:

我正在开发一个 (WPF + C#) 应用程序。我必须实现搜索功能。它将允许在 Window 的特定部分搜索特定字符串的所有出现。最好的方法是什么?

【问题讨论】:

  • 你不使用文本框来获取输入吗?实际上要搜索的字符串在哪里?
  • 您是否要遍历一组控件并检查其内容是否为特定字符串?内容可以是任何难以概括的东西。您有可以搜索的虚拟机吗?
  • @Veer:我正在使用 TextBox、TextBlock、ComboBox 等来显示字符串,我需要在其中搜索特定字符串的出现并突出显示。
  • @Wallstreet Programmer:是的,同样的方式。在我的情况下,我正在搜索的内容将只是字符串。

标签: c# wpf search window string-search


【解决方案1】:

维基,

我希望我能正确地得到你。你可以看看Kent Boogaart有什么:Search and Highlight Text in an Arbitrary Visual Tree

【讨论】:

  • 感谢您的回复,它确实很有帮助,但我的窗口也可以包含其他控件。像 TextBox、ComboBox 一样,我也需要在其中搜索 Text。有什么建议吗?
  • @Viky,只要它在可视化树中就可以工作(文本框应该可以工作)。至于 ComboBox ......它有点棘手,因为下拉列表中的项目位于弹出窗口的可视化树中。在这种情况下,您可能必须自定义 Kent 的算法来检查“已知”异常。
【解决方案2】:

您应该尝试使用ICollectionView 进行过滤。 Here is an example.

【讨论】: