来自博客帖子Silverlight MultiBinding solution for Silverlight 4的代码中的Converter
属性不是依赖属性,因此我无法将其与转换器绑定(由于技术原因,必须将其作为一部分进行实例化在应用程序中较早的Unity注入,而不是作为用户控件的一部分的简单静态资源)。
如何修改MultiBinding
代码以接受绑定转换器?我试图让它成为依赖属性:
public IMultiValueConverter Converter { get { return (IMultiValueConverter)GetValue(ConverterProperty); } set { SetValue(ConverterProperty, value); } }
public static DependencyProperty ConverterProperty = DependencyProperty.Register("Converter", typeof(IMultiValueConverter), typeof(IMultiValueConverter), null);
但我得到了
DependencyProperty System.Windows.Data.IMultiValueConverter。转换器不能设置在类型为...... Binding.MultiBinding。
的对象上
如果这不是一个可行的选项,我如何绑定ConverterParameter
属性或获取某些东西来模拟转换器与MultiBinding
的绑定?
答案 0 :(得分:0)
我使用“模拟绑定”路线解决了这个问题,但如果有人有另一个答案,那不是我的偏好。我所做的不是通过依赖注入构建转换器,而是让它使用服务位置来获得它所需的依赖项。通常我更喜欢依赖注入到服务位置。 “服务位置”是将Unity容器存储在应用程序的全局资源中的问题;从那里获得我需要的东西并不困难。