查看模型与依赖注入

时间:2018-07-01 20:02:58

标签: c# wpf mvvm dependency-injection

在大型的多用户应用程序中,我进行了以下设置:

  • 一个Context类,其中包含对我的数据模型根的引用。从这里,我可以接触到所有其他模型。
  • 一个Commander类,该类具有用于操纵数据模型的方法。例如,对于对象Layout,有一种方法Commander.ResizeLayout(layout, width, height)。注意,此类的基础是客户端-服务器体系结构;在本地更新Layout.widthLayout.height属性之前,请先与服务器联系。
  • Commander在内部具有对Context的引用,并确保在处理命令后,相应的对象被更新。
  • 现在,我正在研究用于用户控件(LayoutViewModel)的视图模型(例如LayoutForm),该视图模型用于编辑Layout的宽度和高度。

我的目标是使视图(模型)利用Commander类来处理视图中所做的任何更改。现在,我将ContextCommander传递给主窗口构造函数。在XAML文件中,Commander对象与相关的数据对象(例如,选定的Layout)一起传递给较小的控件,例如LayoutForm

这是我的奋斗目标:通过绑定不断绕过Commander之类的对象感觉不对。同时,我也相信使用全局变量(例如App.Commander)不是可行的方法,并且Microsoft.Extensions.DependencyInjection(我在解决方案中的其他多个项目中使用过)的依赖注入似乎无法全局访问在WPF中。

从底层控件访问Commander之类的对象的正确方法是什么?还是我在这里想念一个更大的问题?

非常感谢任何可以帮助我前进的建议!

0 个答案:

没有答案