【发布时间】:2014-10-28 04:13:41
【问题描述】:
在 WPF MVVM 应用程序中使用 MVVM Light。
我想使用 Ninject 而不是 SimpleIOC。
即使在全新的 WPF/MVVM Light v4 项目中,当 XAML 调用 ViewModelLocator 中的 Main 属性时,我也会得到 MainViewModel 的空引用。
private static readonly StandardKernel kernel;
static ViewModelLocator()
{
if (ViewModelBase.IsInDesignModeStatic)
{
}
else
{
kernel = new StandardKernel(new mymodule());
}
}
public MainViewModel Main
{
get { return kernel.Get<MainViewModel>(); }
}
MyModule 看起来像这样:
public class mymodule:NinjectModule
{
public override void Load()
{
Bind<MainViewModel>().ToSelf();
}
}
我也试过
public class mymodule:NinjectModule
{
public override void Load()
{
Bind<MainViewModel>().To<MainViewModel();
}
}
【问题讨论】:
-
是 kernel.Get
返回 null 还是 kernel null? -
如果涉及异常,请始终在示例代码中提供完整的异常类型、消息和堆栈跟踪。
标签: c# wpf ninject mvvm-light