在代码后端绑定一个转换器。

3
作为解决方案重构的一部分,我不得不将转换器移入一个依赖注入的UI服务中。现在我的ValueConverter存在于一个实例中。之前,我定义了一个本地资源并将其用于转换器,这起到了很好的作用。在进行重构后,我尝试通过绑定来使用转换器,但是它却提示无法对转换器进行绑定。阅读此http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/d6a95f05-4338-44a4-a834-bbfe71e893ac/发现这是设计上的限制。
请问如何在XAML中指定我的转换器,它存在于代码后台中的一个实例中(例如,在视图的代码后台中为UIHelperService.FormatConverter)?
1个回答

4
如果转换器可以在实例之间共享,将其作为静态成员放置在某个位置,然后....
{Binding Whatever Converter={x:Static src:MyClass.MyConverter}}

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


非常感谢你,Robert!目前我已经将它变成了一个非实例特定的转换器。因为我无法使我的依赖注入服务持有转换器的静态实例。 - ioWint

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接