App.axaml.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using Avalonia;
  2. using Avalonia.Controls.ApplicationLifetimes;
  3. using Avalonia.Markup.Xaml;
  4. using PCL.Communist.ViewModels;
  5. using PCL.Communist.Views;
  6. namespace PCL.Communist;
  7. public partial class App : Application
  8. {
  9. private MainViewModel? _viewModel;
  10. public override void Initialize()
  11. {
  12. AvaloniaXamlLoader.Load(this);
  13. }
  14. public override void OnFrameworkInitializationCompleted()
  15. {
  16. _viewModel ??= new MainViewModel();
  17. if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
  18. {
  19. desktop.MainWindow = new MainWindow
  20. {
  21. DataContext = _viewModel
  22. };
  23. }
  24. else if (ApplicationLifetime is IActivityApplicationLifetime singleViewFactoryApplicationLifetime)
  25. {
  26. singleViewFactoryApplicationLifetime.MainViewFactory = () => new MainView { DataContext = _viewModel };
  27. }
  28. else if (ApplicationLifetime is ISingleViewApplicationLifetime singleViewPlatform)
  29. {
  30. singleViewPlatform.MainView = new MainView
  31. {
  32. DataContext = _viewModel
  33. };
  34. }
  35. base.OnFrameworkInitializationCompleted();
  36. }
  37. }