将文本框值传递给Silverlight 3中另一个数据绑定控件使用的IValueConverter?

将文本框值传递给Silverlight 3中另一个数据绑定控件使用的IValueConverter?,silverlight,silverlight-3.0,ivalueconverter,Silverlight,Silverlight 3.0,Ivalueconverter,我有一个Silverlight 3控件,其中我使用ItemsControl来显示项目列表。我已经实现了一个“过滤器”或“搜索”文本框,允许用户在控件的文本框中输入搜索词,从而将ItemsControl中显示的项目限制为包含文本框中输入的字符串的项目。我已经能够实现这个功能,但是我想通过在items控件中显示的文本中更改搜索词文本的颜色来增强它。例如,如果用户在搜索文本框中键入“foo”,我想将ItemsControl(我已经在做)中的项过滤到包含“foo”的项,并更改ItemsControl中出

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


理想情况下,我将实现一个IValueConverter,并将搜索文本框中的值作为参数传递给转换器。然后,转换器可以搜索正在转换的值,并更改所有“foo”子字符串的背景色(不确定我将如何执行此操作,可能会使用内联线?)。似乎传递给值转换器的参数值必须是静态资源。是否有任何方法可以将非静态值传递给值转换器以完成我正在尝试的操作?有没有其他不使用IValueConverter的方法呢?

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

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


我认为这在我的情况下行不通。首先,这些颜色变化规则似乎是静态的,这意味着它们不依赖于任何其他控件的状态。我需要一个解决方案,允许转换规则依赖于在另一个文本框中输入的文本。另一件事是Telerik grid公开了一个“RowLoaded”事件,而ItemsControl上没有对应的事件。如果您知道我的意思(使用数据绑定控件并处理事件来格式化数据,因为数据源中的每个项都绑定到新行),那么这种方式看起来更像是“ASP.NET”。