0

Converter博客文章代码中的属性Silverlight MultiBinding solution for Silverlight 4不是依赖属性,因此我无法将它与转换器绑定(出于技术原因,必须在应用程序早期将其实例化为 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属性或获取一些东西来模拟转换器到 a 的绑定MultiBinding

4

1 回答 1

0

我使用“模拟绑定”路线解决了这个问题,但如果有人有其他答案,这不是我的偏好。相反,我所做的不是通过依赖注入来构建转换器,而是让它使用服务位置来获取它所需的依赖。一般来说,我更喜欢依赖注入而不是服务位置。“服务位置”是将 Unity 容器存储在应用程序的全局资源中的问题;从那里得到我需要的东西并不难。

于 2011-12-06T23:06:37.100 回答