我假定當在NinjectModule我結合Ninject InSingletonScope()視圖模型不是在結合
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模塊中的View的DataContext,並允許它在以後通過kernel.Get返回到應用程序中的其他代碼。
或者在SplashWindow的'DataContext'屬性上放置'[Inject]'屬性。那麼就讓你的SplashWindow綁定一個正常的自綁定。 –