【问题标题】:Bind a Converter defined in the code behind绑定后面代码中定义的转换器
【发布时间】:2011-08-15 20:17:56
【问题描述】:

作为解决方案重构的一部分,我不得不将 Converter 移入依赖注入的 UI 服务。现在我的 ValueConverter 存在于实例中。早些时候我已经定义了一个本地资源,并为转换器提到了它,它就像一个魅力。在如上所述进行重构之后,我在 Binding to Converter 中尝试了运气,它只是说无法对 Converter 进行绑定。阅读此http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/d6a95f05-4338-44a4-a834-bbfe71e893ac/ 发现它是设计使然。

您能否告诉我如何在 xaml 中指定我的转换器,该转换器存在于后面代码中的实例中(比如后面的 Views 代码中的 UIHelperService.FormatConverter)。

【问题讨论】:

    标签: wpf xaml binding ivalueconverter


    【解决方案1】:

    如果转换器可以在实例之间共享,请在某处将其设为静态成员,然后......

    {Binding Whatever Converter={x:Static src:MyClass.MyConverter}}
    

    如果它是实例成员,您可能需要在代码隐藏中手动设置绑定......但转换器几乎不应该是特定于实例的。相反,如果需要,您可以使用 ConverterParameters 来实现此行为。

    【讨论】:

    • 非常感谢罗伯特!现在我已经把它变成了一个非实例特定的转换器。因为我不能让我的依赖注入服务持有转换器一个静态实例。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-22
    • 2011-07-17
    • 1970-01-01
    • 2018-05-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多