我有一个 IValueConverter 类,用于在单元格本身的值大于 0(不重要)的情况下更改数据网格单元格的背景颜色。
现在我想创建包含此数据网格的窗口的多个实例。根据 Window 实例中定义的某些值,IValueConverter 应为数据网格单元格的背景着色或不着色。因此,IValueConverter 应根据 Window 类的实例执行不同的工作。
现在的问题是:我无法在 XAML 中传递 ConverterParameter,因为该参数将是窗口所有实例的修复参数。 我考虑过以编程方式将相关信息传递给 IValueConverter 类(这是必需的),但是如何访问 IValueConverter 类的实例? 我当前的解决方案:我将一些静态变量放入 IValueConverter 类中,以便我可以从 Window 类的实例访问它们。但这个解决方案是一个糟糕的解决方案,因为变量是静态的,因此 ValueConverter 在每个窗口实例中的行为方式相同。
有谁知道如何从 Window 实例以编程方式访问 IValueConverter 实例? 谢谢!
最佳答案
由于您无法将数据绑定(bind)到 ConverterParameter,因此您可以执行以下两种操作之一(另请参阅 this SO question ):
- 向 View 模型添加依赖属性并执行多值转换器
- 将整个 View 模型传递到绑定(bind)表达式中
关于c# - 如何将参数从代码传递到 ValueConverter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10018596/