【发布时间】:2012-02-16 14:35:11
【问题描述】:
我正在使用 Ninject 将视图模型实例注入到每个视图的 DataContext 属性中,以避免使用 ServiceLocator,并且按照建议 here 在 NinjectModule 中使用以下语法:
public class TestingModule : NinjectModule
{
public override void Load()
{
Bind<MainPage>().ToMethod(ctx => new MainPage() { DataContext = new MainPageViewModel() }).InSingletonScope();
}
}
如果我使用:
var x = Kernel.Get<MainPage>();
然后将x里面的DataContext属性设置为MainPageViewModel的一个实例,很好。
问题是应用程序在导航到页面或启动时没有从 DI 容器中获取视图实例,因此在设备上或内部运行应用程序时,永远不会在任何视图中设置 DataContext 属性模拟器。
有谁知道我可以如何拦截视图的创建,以便我可以强制应用从 DI 容器中检索视图实例?
【问题讨论】:
标签: dependency-injection ninject windows-phone-7.1 windows-phone-7