我有一个IValueConverter实现的类,我需要使用我的DI容器(Ninject)注入它。如何在XAML中注入转换器
问题是,在XAML中,没有立即明显的方式来控制Converter对象的实例化。
所以我的XAML包含一行是这样的:
来源= “{绑定路径= CurrentMessage,转换器= {StaticResource的ImagePathConverter}}”
其中,在ImagePathConverter会为我创建。
我想我可以创建一个“服务定位器”静态类,并调用它来解决我的依赖关系,并将StaticResource更改为属性“MyServiceLocator.TheImageConverter”,但这使我想呕吐。
我希望这个问题可以用一些代码片段来回答,这些代码片段专门针对提供的代码 - 也许是一个示例的支持链接。不只是一个建议去看看的地方。
此外,非常重要的是,假设XAML 没有代码隐藏 - 而且我不能使用它。我正在创建一个皮肤,并且不想要代码。所以我不能在类的构造函数中设置一个类变量并引用它。也许这是不合理的,我还不确定。
我想知道为什么你需要转换器与DI解决..? – NotDan 2009-05-23 04:36:20
因为Converter使用(取决于)一个格式化类,它具有它自己的依赖关系,并且每个这些依赖关系也可能具有依赖关系。这是DI的全部重点 - 为我连接所有这些依赖关系。 我想知道如果很多人只是用它来新的对象,并没有意识到主要目的? – PandaWood 2009-05-23 10:45:16