Files
DMS/Services/NavgatorServices.cs

42 lines
1.0 KiB
C#
Raw Normal View History

using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Messaging;
2025-06-10 20:55:39 +08:00
using Microsoft.Extensions.DependencyInjection;
using PMSWPF.Message;
2025-06-10 20:55:39 +08:00
using PMSWPF.ViewModels;
namespace PMSWPF.Services;
public class NavgatorServices : ObservableRecipient, IRecipient<NavgatorMessage>
2025-06-10 20:55:39 +08:00
{
private ViewModelBase currentViewModel;
public NavgatorServices()
{
IsActive = true;
}
2025-06-10 20:55:39 +08:00
public ViewModelBase CurrentViewModel
{
get => currentViewModel;
2025-06-10 20:55:39 +08:00
set
{
currentViewModel = value;
2025-06-10 20:55:39 +08:00
OnViewModelChanged?.Invoke();
currentViewModel.OnLoaded();
2025-06-10 20:55:39 +08:00
}
}
public void Receive(NavgatorMessage message)
{
CurrentViewModel = message.Value;
CurrentViewModel.NavgateParameters = message.Parameters;
}
public event Action OnViewModelChanged;
2025-06-10 20:55:39 +08:00
public void NavigateTo<T>() where T : ViewModelBase
{
// Application.Current
CurrentViewModel = App.Current.Services.GetService<T>();
}
}