NullReferenceException on DisplayRootViewFor <>
I created a class derived from BootstrapperBase
, overwritten OnStartup()
and called DisplayRootViewFor<AppViewModel>()
just like in the documentation.
But when I run the application, I get NullReferenceException
onDisplayRooViewFor<AppViewModel>()
using Caliburn.Micro; using MHBRestore.Logic; using MHBRestore.UI.ViewModel; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; namespace MHBRestore.UI { public class AppBootstrapper : BootstrapperBase { private SimpleContainer _container = new SimpleContainer(); public AppBootstrapper() { Initialize(); } protected override void OnStartup(object sender, StartupEventArgs e) { DisplayRootViewFor<AppViewModel>(); } protected override object GetInstance(Type service, string key) { return _container.GetInstance(service, key); } protected override IEnumerable<object> GetAllInstances(Type service) { return _container.GetAllInstances(service); } protected override void BuildUp(object instance) { _container.BuildUp(instance); } } }
+1
source share
1 answer
Try to override the method Configure
and register your view's model type:
public class AppBootstrapper : BootstrapperBase { private SimpleContainer _container = new SimpleContainer(); public AppBootstrapper() { Initialize(); } protected override void Configure() { _container.Singleton<IWindowManager, WindowManager>(); _container.Singleton<IEventAggregator, EventAggregator>(); _container.RegisterPerRequest(typeof(AppViewModel), null, typeof(AppViewModel)); } protected override void OnStartup(object sender, StartupEventArgs e) { DisplayRootViewFor<AppViewModel>(); } protected override object GetInstance(Type service, string key) { return _container.GetInstance(service, key); } protected override IEnumerable<object> GetAllInstances(Type service) { return _container.GetAllInstances(service); } protected override void BuildUp(object instance) { _container.BuildUp(instance); } }
0
source share