我发现的所有ValueConverter示例都使用了Resources来创建ValueConverter实例。但我的ValueConverter使用了一些由IoC框架解决的依赖项。所以我想将Binding Converter属性设置为我的ViewModel的一些属性,可以通过DataContext访问它。我试图这样做,但得到一个例外,告诉我无法将任何东西绑定到绑定的Converter属性。
答案 0 :(得分:2)
你不能绑定Binding.Converter
,因为它不是依赖属性,但你可以让转换器继承自DependencyObject
并在其上声明dependency properties,然后你可以绑定它们。 / p>
但是请注意,您可能需要跳出一些箍来获得您想要的东西,因为您将无法绑定到DataContext
。您可能无法使用ElementName,因为转换器没有名称范围。一种常见的解决方法是使用Binding.Source
和x:Reference
使用正确的DataContext定位对象。确保不要声明在目标对象的可视化树中实例化转换器,否则x:Reference
将抛出周期性依赖性错误(目标对象的Resources
都没问题。)