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

Ami*_*imi 4 wpf mdi dependency-injection inversion-of-control composition

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

现在请告诉我这个问题.

提前致谢.

Mar*_*ann 7

ViewModelLocator是否是服务定位器部分取决于其签名,部分取决于其角色.

在任何情况下,WPF应用程序的组合根是OnStartup方法 - 无论应用程序是否是MDI应用程序都不会改变它.

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