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();
}
}