|
@@ -1,5 +1,6 @@
|
|
using System;
|
|
using System;
|
|
using System.Diagnostics.Tracing;
|
|
using System.Diagnostics.Tracing;
|
|
|
|
+using CommunityToolkit.Mvvm.ComponentModel;
|
|
using DialogHostAvalonia;
|
|
using DialogHostAvalonia;
|
|
using InABox.Avalonia.Components;
|
|
using InABox.Avalonia.Components;
|
|
using InABox.Avalonia.Router;
|
|
using InABox.Avalonia.Router;
|
|
@@ -117,4 +118,46 @@ public static class Navigation
|
|
public static event Action<IViewModelBase, RouterDirection>? CurrentViewModelChanging;
|
|
public static event Action<IViewModelBase, RouterDirection>? CurrentViewModelChanging;
|
|
|
|
|
|
public static event Action<IViewModelBase>? CurrentViewModelChanged;
|
|
public static event Action<IViewModelBase>? CurrentViewModelChanged;
|
|
-}
|
|
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+public class BasePopupViewModel<TResult> : ObservableObject, IPopupViewModel<TResult?>, IViewModelBase
|
|
|
|
+{
|
|
|
|
+ #region IPopupViewModel
|
|
|
|
+
|
|
|
|
+ public bool IsClosed { get; private set; }
|
|
|
|
+
|
|
|
|
+ protected TResult? _result;
|
|
|
|
+
|
|
|
|
+ public TResult? GetResult()
|
|
|
|
+ {
|
|
|
|
+ return _result;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public void Close(TResult? result)
|
|
|
|
+ {
|
|
|
|
+ _result = result;
|
|
|
|
+ IsClosed = true;
|
|
|
|
+ DialogHost.GetDialogSession(null)?.Close();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ #endregion
|
|
|
|
+
|
|
|
|
+ #region IViewModel
|
|
|
|
+
|
|
|
|
+ public bool BackButtonVisible { get; set; }
|
|
|
|
+ public bool ProgressVisible { get; set; }
|
|
|
|
+ public AvaloniaMenuItemCollection PrimaryMenu { get; set; } = new();
|
|
|
|
+ public AvaloniaMenuItemCollection SecondaryMenu { get; set; } = new();
|
|
|
|
+
|
|
|
|
+ public Task Activate()
|
|
|
|
+ {
|
|
|
|
+ return Task.CompletedTask;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Task Deactivate()
|
|
|
|
+ {
|
|
|
|
+ return Task.CompletedTask;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ #endregion
|
|
|
|
+}
|