refactor: App.axaml.cs

This commit is contained in:
2026-04-14 22:33:07 +03:00
parent abb6284b15
commit 392b20ccee
+10 -7
View File
@@ -1,3 +1,7 @@
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Avalonia.Controls.ApplicationLifetimes;
using Avalonia.Markup.Xaml;
using Avalonia.Threading;
@@ -8,10 +12,6 @@ using GSS2.UI.Core;
using GSS2.UI.Core.Services;
using GSS2.UI.Core.ViewModels;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
namespace GSS2;
public partial class Application : Avalonia.Application
@@ -40,7 +40,6 @@ public partial class Application : Avalonia.Application
public override void Initialize()
{
AvaloniaXamlLoader.Load(this);
// Добавляем наш DependencyInjectionViewLocator в DataTemplates приложения
DataTemplates.Add(_viewLocator);
}
@@ -65,12 +64,12 @@ public partial class Application : Avalonia.Application
return;
// Иначе это событие вызвано не из интерфейса и графический интерфейс нужно закрыть
Dispatcher.InvokeShutdown();
Dispatcher.UIThread.InvokeShutdown();
_allShutdownSequencesRunning = true;
});
// Создаём обработчик события закрытия графического интерфейса
Dispatcher.ShutdownStarted += (_, _) =>
Dispatcher.UIThread.ShutdownStarted += (_, _) =>
{
// Если всё что нужно для закрытия приложения уже вызвано, то ничего не делаем
if (_allShutdownSequencesRunning)
@@ -104,6 +103,10 @@ public partial class Application : Avalonia.Application
{
DataContext = _services.GetRequiredService<MainViewModel>()
};
// var mainView = new GSS2.UI.Core.Views.CameraView(_services.GetService<ILogger<GSS2.UI.Core.Views.CameraView>>()!)
// {
// DataContext = _services.GetRequiredService<GSS2.UI.Core.ViewModels.CameraViewModel>()
// };
// Создаём главный элемент управления
// на основании типа ApplicationLifetime, который зависит от того как мы запустили приложение