WPF MDI应用程序中的组合根目录在哪里?

时间:2012-01-31 12:31:44

标签: wpf dependency-injection inversion-of-control mdi composition

在传统的MDI应用程序中,当命令发生时(例如按下功能区按钮)将创建一些对象(表单),因此它可能是一个组合点。我对这些应用程序中的组合根感到困惑。我在某处读到我们可以使用 ViewModelLocator ,它看起来像服务定位器模式。如您所知,服务定位器模式被某些人谴责。

现在请就此问题向我提出建议。

提前致谢。

1 个答案:

答案 0 :(得分:7)

ViewModelLocator是否是服务定位器depends partly on its signaturepartly on its role

在任何情况下,WPF应用程序的Composition Root都是OnStartup method - 无论应用程序是否是MDI应用程序都不会改变它。

因为在MDI应用程序中,您可以拥有任意数量的子窗口,所以您很可能需要一个抽象工厂来创建每个ViewModel。