protected override void OnStartup(object sender, StartupEventArgs e)
 {
     ViewLocator.LocateTypeForModelType = (modelType, dependencyObject, arg3) => ViewModelConventions.GetViewForModel(modelType);
     lifetimeScope.Resolve <AutoSubscriber>().Subscribe();
     lifetimeScope.Resolve <IWindowManager>().ShowDialog(lifetimeScope.Resolve <ShellViewModel>());
     base.OnStartup(sender, e);
 }
示例#2
0
    static Window GetWindow <T>(T model) where T : INotifyPropertyChanged
    {
        var viewType = ViewModelConventions.GetViewForModel(typeof(T));
        var view     = (ContentControl)Activator.CreateInstance(viewType);
        var window   = new Window
        {
            Content = view,
            Height  = 400,
            Width   = 400,
        };

        ViewModelBinder.Bind(model, view, null);
        return(window);
    }
示例#3
0
    public static IContainer BuildContainer()
    {
        var builder = new ContainerBuilder();

        builder.Register <IWindowManager>(c => new WindowManager()).InstancePerLifetimeScope();

        builder.RegisterAssemblyTypes(ThisAssembly())
        .Where(type => (ViewModelConventions.IsInstanceViewOrModel(type)))
        .AsSelf()
        .InstancePerDependency();

        builder.RegisterType <EventAggregator>()
        .As <IEventAggregator>()
        .SingleInstance();
        builder.RegisterType <WindowManager>()
        .As <IWindowManager>()
        .SingleInstance();
        builder.RegisterType <InstallFeedbackReporter>()
        .SingleInstance();
        builder.RegisterType <ShellViewModel>()
        .SingleInstance();
        builder.RegisterType <PowerShellRunner>()
        .SingleInstance();
        builder.RegisterType <ChocolateyInstaller>()
        .SingleInstance();
        builder.RegisterType <ProcessRunner>()
        .SingleInstance();
        builder.RegisterType <LicenseAgreement>()
        .SingleInstance();
        builder.RegisterType <PackageManager>()
        .SingleInstance();
        builder.RegisterType <AppBootstrapper>()
        .SingleInstance();
        builder.RegisterType <AutoSubscriber>();
        builder.RegisterType <PackageDefinitionService>()
        .SingleInstance();
        builder.RegisterType <PendingRestart>()
        .SingleInstance();

        return(builder.Build());
    }
示例#4
0
 public AppBootstrapper(ILifetimeScope lifetimeScope) : base(useApplication: false)
 {
     this.lifetimeScope = lifetimeScope;
     ViewLocator.LocateTypeForModelType = (modelType, dependencyObject, arg3) => ViewModelConventions.GetViewForModel(modelType);
 }