using Avalonia; using Avalonia.Controls.ApplicationLifetimes; using Avalonia.Markup.Xaml; using PCL.Communist.ViewModels; using PCL.Communist.Views; namespace PCL.Communist; public partial class App : Application { private MainViewModel? _viewModel; public override void Initialize() { AvaloniaXamlLoader.Load(this); } public override void OnFrameworkInitializationCompleted() { _viewModel ??= new MainViewModel(); if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) { desktop.MainWindow = new MainWindow { DataContext = _viewModel }; } else if (ApplicationLifetime is IActivityApplicationLifetime singleViewFactoryApplicationLifetime) { singleViewFactoryApplicationLifetime.MainViewFactory = () => new MainView { DataContext = _viewModel }; } else if (ApplicationLifetime is ISingleViewApplicationLifetime singleViewPlatform) { singleViewPlatform.MainView = new MainView { DataContext = _viewModel }; } base.OnFrameworkInitializationCompleted(); } }