【发布时间】:2011-12-19 03:57:43
【问题描述】:
我假设当我在 NinjectModule 中绑定时
Bind<SplashViewModel>().ToSelf().InSingletonScope();
SplashViewModel 的一个实例被缓存在 Ninject 内核中,每次我调用kernel.Get<SplashViewModel> 时,我都会得到相同的视图模型实例返回给我。这就是发生的事情,真的。
在我的NinjectUIModule 我打电话:
Bind<SplashViewModel>().ToSelf().InSingletonScope();
Bind<SplashWindow>().ToMethod(context => new SplashWindow()
{
DataContext = new SplashViewModel()
});
问题在于SplashWindow 获得了一个不同的SplashViewModel 新实例,而不是缓存在Ninject 内核中并返回给所有其他检索方的实例。
如何在 Ninject 模块中将视图模型绑定到视图的 DataContext,并允许它通过内核返回。稍后获取应用程序中的其他代码。
【问题讨论】:
标签: .net mvvm inversion-of-control ninject