diff --git a/GSS2.UI.Core/Services/NavigateService.cs b/GSS2.UI.Core/Services/NavigateService.cs index b943a72..2f98b97 100644 --- a/GSS2.UI.Core/Services/NavigateService.cs +++ b/GSS2.UI.Core/Services/NavigateService.cs @@ -1,12 +1,19 @@ - using Avalonia.Controls; using Avalonia.Controls.ApplicationLifetimes; namespace GSS2.UI.Core.Services; +/// +/// - сервис навигации между компонентами, +/// работающий с режимами главного окна +/// и одного представления .
+/// Условием его работы в режиме главного окна является то, что +/// является +/// +///
public class NavigationService { - private readonly Stack _navigateControls = new Stack(); + private readonly Stack _navigateControls = new Stack(); private readonly IApplicationLifetime? _applicationLifetime; public NavigationService(IApplicationLifetime? applicationLifetime) @@ -14,7 +21,11 @@ public class NavigationService _applicationLifetime = applicationLifetime; } - public void NavigateTo(UserControl control) + /// + /// Перейти к новому элементу управления + /// + /// Новый элемент управления + public void NavigateTo(Control control) { _navigateControls.Push(control); @@ -22,7 +33,6 @@ public class NavigationService { case IClassicDesktopStyleApplicationLifetime desktop when desktop.MainWindow is MainWindow mainWindow: - mainWindow.SetControl(control); break; @@ -32,7 +42,14 @@ public class NavigationService } } - public void NavigateBack() + /// + /// Вернутся к предыдущему элементу управления + /// + /// + /// Если и если элемент управления от которого происходит переход, реализует интерфейс + /// , то будет вызван его метод + /// + public void NavigateBack(bool dispose = true) { if (_navigateControls.Count <= 1) return; @@ -53,7 +70,7 @@ public class NavigationService break; } - if (lastControl is IDisposable disposable) + if (dispose && lastControl is IDisposable disposable) disposable.Dispose(); } }