|
|
|
|
@ -1,6 +1,8 @@ |
|
|
|
|
using Avalonia; |
|
|
|
|
using Avalonia.Controls; |
|
|
|
|
using Avalonia.Controls.ApplicationLifetimes; |
|
|
|
|
using Avalonia.Markup.Xaml; |
|
|
|
|
using LightweightIocContainer.Interfaces; |
|
|
|
|
using Mystify.ViewModels; |
|
|
|
|
using Mystify.Views; |
|
|
|
|
|
|
|
|
|
@ -8,19 +10,30 @@ namespace Mystify |
|
|
|
|
{ |
|
|
|
|
public class App : Application |
|
|
|
|
{ |
|
|
|
|
private IIocContainer? _kernel; |
|
|
|
|
|
|
|
|
|
public override void Initialize() => AvaloniaXamlLoader.Load(this); |
|
|
|
|
|
|
|
|
|
public override void OnFrameworkInitializationCompleted() |
|
|
|
|
{ |
|
|
|
|
if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) |
|
|
|
|
if (Design.IsDesignMode) |
|
|
|
|
return; |
|
|
|
|
|
|
|
|
|
Bootstrapper bootstrapper = new(); |
|
|
|
|
_kernel = bootstrapper.BootstrapKernel(); |
|
|
|
|
|
|
|
|
|
if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktopStyleApplicationLifetime) |
|
|
|
|
{ |
|
|
|
|
desktop.MainWindow = new MainWindow |
|
|
|
|
desktopStyleApplicationLifetime.MainWindow = new MainWindow |
|
|
|
|
{ |
|
|
|
|
DataContext = new MainWindowViewModel(), |
|
|
|
|
}; |
|
|
|
|
desktopStyleApplicationLifetime.Exit += OnExit; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
base.OnFrameworkInitializationCompleted(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void OnExit(object? sender, ControlledApplicationLifetimeExitEventArgs args) => _kernel?.Dispose(); |
|
|
|
|
} |
|
|
|
|
} |