Max*_*kin 12 c# wpf dependency-injection mvvm
您能否举例说明如何使用(您最喜欢的)DI框架为WPF应用程序连接MVVM View Models?
您是否会创建一个强连接的View Models层次结构(比如每个嵌套控件的ViewModel是父ViewModel上的属性,并将它绑定到XAML中的嵌套控件的DataContext)或者您将使用某种更抽象的""查看模型"管理器",它维护一些弱连接的层次结构......就像在CAB中一样,也许?
如果视图模型只能与另一个一起存在,我会建立一种强大的关系.这就是拥有视图模型将直接引用一个或多个从属视图模型.另一方面,如果视图模型应该能够存在或不存在另一个模型,我采用松耦合方法,通过事件总线进行通信.
在使用DI与MVVM方面,绝对可以将两者结合起来.它很简单:
public class MyViewModel
{
private readonly IMyDependency _myDependency;
public MyViewModel(IMyDependency myDependency)
{
_myDependency = myDependency;
}
}
Run Code Online (Sandbox Code Playgroud)
但是请注意,这假定了MVVM的"视图模型优先"方法,这有其缺点.