2

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

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

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

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

4

1 回答 1

2

由于您无法将数据绑定到 ConverterParameter,因此您可以选择以下两种方式之一(另请参阅此 SO 问题):

  1. 将依赖属性添加到您的视图模型并执行多值转换器
  2. 将整个视图模型传递给您的绑定表达式
于 2012-04-04T20:20:38.027 回答