0

我有一个 Silverlight 3 控件,我在其中使用 ItemsControl 来显示项目列表。我已经实现了一个“过滤器”或“搜索”文本框,它允许用户在控件的文本框中输入搜索词,这会将 ItemsControl 中显示的项目限制为包含在文本框中输入的字符串的项目。我已经能够实现此功能,但我想通过更改项目控件中显示的文本中搜索词文本的颜色来增强它。例如,如果用户在搜索文本框中键入“foo”,我想将 ItemsControl(我已经在做)中的项目过滤为包含“foo”的项目,并更改子字符串“foo”的背景颜色" 它出现在 ItemsControl 中。

理想情况下,我会实现一个 IValueConverter 并将搜索文本框中的值作为参数传递给转换器。然后转换器可以搜索正在转换的值并更改所有“foo”子字符串的背景颜色(不确定我将如何执行此操作,可能与 Inlines 相关?)。似乎传递给值转换器的参数值必须是静态资源。有什么方法可以将非静态值传递给值转换器来完成我想要做的事情?还有另一种不使用 IValueConverter 的方法吗?

4

1 回答 1

0

请注意,我还没有完全解决这个问题,但是我在我的应用程序中使用 Interaction.Behaviors 做了一些类似的事情。这比直接转换器解决方案更灵活一些。在我的解决方案中,我使用它根据各种条件突出显示网格中的单元格和/或文本(例如,这是一个关键项目吗?将其设为红色)。

看看这个博客条目,它很好地解释了这个过程,并且应该不仅仅适用于 Telerik RadGridView。(仅供参考,我认为您需要添加对 System.Windows.Interactivity 的引用)

博客

于 2010-10-29T19:49:33.230 回答