c# - 如何将参数从代码传递到 ValueConverter

标签 c# .net wpf ivalueconverter

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

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

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

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

最佳答案

由于您无法将数据绑定(bind)到 ConverterParameter,因此您可以执行以下两种操作之一(另请参阅 this SO question ):

  1. 向 View 模型添加依赖属性并执行多值转换器
  2. 将整个 View 模型传递到绑定(bind)表达式中

关于c# - 如何将参数从代码传递到 ValueConverter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10018596/

相关文章:

c# - 如何使用 Linq 实现 NextRcord 和 PreviousRecord 按钮?

c# - 将参数传递给 ViewModel 中的 linq 查询的正确方法

c# - ASP.NET 样板插件模块或动态模块

c# - 调用的对象已与其客户端断开连接 (WatIn)

c# - 将类方法的返回值显示到表单

c# - Web API 响应 xml 语言

wpf - 如何更改 WPF CheckBox 控件中 CheckMark 的颜色?

c# - 需要一个针对(短期)非 .Net 程序员的快速 C# 教程

c# - 在 WCF UsernamePasswordValidator 中访问当前的 InstanceContext

C#,阻塞集合 : How to wait until collection has less than N items