在大型的多用户应用程序中,我进行了以下设置:
Context
类,其中包含对我的数据模型根的引用。从这里,我可以接触到所有其他模型。Commander
类,该类具有用于操纵数据模型的方法。例如,对于对象Layout
,有一种方法Commander.ResizeLayout(layout, width, height)
。注意,此类的基础是客户端-服务器体系结构;在本地更新Layout.width
和Layout.height
属性之前,请先与服务器联系。Commander
在内部具有对Context
的引用,并确保在处理命令后,相应的对象被更新。LayoutViewModel
)的视图模型(例如LayoutForm
),该视图模型用于编辑Layout
的宽度和高度。 我的目标是使视图(模型)利用Commander
类来处理视图中所做的任何更改。现在,我将Context
和Commander
传递给主窗口构造函数。在XAML文件中,Commander
对象与相关的数据对象(例如,选定的Layout
)一起传递给较小的控件,例如LayoutForm
。
这是我的奋斗目标:通过绑定不断绕过Commander
之类的对象感觉不对。同时,我也相信使用全局变量(例如App.Commander
)不是可行的方法,并且Microsoft.Extensions.DependencyInjection
(我在解决方案中的其他多个项目中使用过)的依赖注入似乎无法全局访问在WPF中。
从底层控件访问Commander
之类的对象的正确方法是什么?还是我在这里想念一个更大的问题?
非常感谢任何可以帮助我前进的建议!