如何将参数从代码传递给ValueConverter

时间:2012-04-04 20:15:07

标签: c# .net wpf ivalueconverter

我有一个IValueConverter类,用于更改数据网格单元格的背景颜色,以防单元格中的值大于0(不重要)。

现在我想创建包含此数据网格的窗口的多个实例。根据Window实例中定义的某些值,IValueConverter应为数据网格的单元格的背景着色。因此,IValueConverter将根据Window类的实例执行不同的工作。

现在的问题是:我无法在XAML中传递ConverterParameter,因为该参数将是窗口所有实例的修复参数。 我想过以编程方式将相关信息传递给IValueConverter类(这是必需的),但是如何访问IValueConverter类的实例呢? 我目前的解决方案:我将一些静态变量放入IValueConverter类中,以便我可以从Window类的实例访问它们。但是这个解决方案很糟糕,因为变量是静态的,因此ValueConverter在每个窗口实例中的行为方式都相同。

有谁知道如何以编程方式从Window实例访问IValueConverter实例? 谢谢!

1 个答案:

答案 0 :(得分:1)

由于您无法数据绑定到ConverterParameter,您可以使用以下两种方法之一(另请参阅this SO question):

  1. 向视图模型添加依赖项属性并执行多值转换器
  2. 将整个视图模型传递到绑定表达式