WPF UserControl上的Dependecy injection(Windsor)

Cri*_*ixo 5 wpf dependency-injection castle-windsor

在MainView中使用DI不是问题:我将我的窗口添加到我的容器中,在启动时我会显示已从容器中取出的窗口.但是,如果我将一个usercontrol添加到我的主视图中作为xaml标记,wpf视图引擎将自动创建它的新实例,而不会拉出我添加到我的容器中的UserControl ..如何强制WPF视图引擎搜索组件view/xamal需要进入我的容器而不是创建新容器吗?

Sno*_*ear 3

如果不修改 XAML,就无法做到这一点。您可以考虑一些解决方法,例如创建一个继承的控件ContentControl,将依赖项注入其中Content,但我不会推荐这种方法,除非您别无选择。

我建议使用最好的 WPF 模式 - MVVM。这个想法是拥有一个 ViewModel 的层次结构,所有这些都将使用 IoC 容器和适当的构造函数注入来创建。此外,您还将拥有视图层次结构,每个视图将仅依赖于相应的 viewModel,该视图模型将被传递到视图的DataContext. 这种方法将允许您在 WPF 应用程序中很好地使用 DI。