我找到的所有ValueConverter示例都使用了参考资料来创建ValueConverter实例。但是我的ValueConverter使用了一些依赖项,这些依赖项由IoC框架解决。因此,我想将绑定转换器属性设置为可通过DataContext访问的ViewModel的某个属性。我试图这样做,但是得到一个异常,告诉我不能绑定任何东西到绑定的Converter属性。
发布于 2012-01-21 00:42:55
您不能绑定Binding.Converter,因为它不是依赖属性,但您可以使转换器继承DependencyObject并在其上声明dependency properties,然后可以绑定这些属性。
但是请注意,您可能需要跳过一些障碍来获得您想要的东西,因为您将无法绑定到DataContext。您可能也不能使用ElementName,因为转换器将没有名称作用域。一种常见的解决方法是将Binding.Source与x:Reference结合使用,以具有正确DataContext的对象为目标。确保不要在目标对象的可视化树中声明实例化转换器,否则x:Reference将抛出循环依赖错误(目标对象的Resources就可以了)。
https://stackoverflow.com/questions/8944764
复制相似问题