Files
DMS/ViewModels/MainViewModel.cs

51 lines
1.4 KiB
C#
Raw Normal View History

using System.Collections.ObjectModel;
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using CommunityToolkit.Mvvm.Messaging;
using PMSWPF.Data.Entities;
using PMSWPF.Data.Repositories;
using PMSWPF.Message;
using PMSWPF.Models;
2025-06-10 20:55:39 +08:00
using PMSWPF.Services;
2025-05-29 08:58:58 +08:00
namespace PMSWPF.ViewModels;
2025-06-10 20:55:39 +08:00
public partial class MainViewModel : ViewModelBase
{
private readonly NavgatorServices _navgatorServices;
2025-06-10 20:55:39 +08:00
[ObservableProperty] private ViewModelBase currentViewModel;
[ObservableProperty]
private ObservableCollection<MenuBean> _menus;
2025-05-29 08:58:58 +08:00
private readonly MenuRepository _menuRepository;
public MainViewModel(NavgatorServices navgatorServices)
{
_navgatorServices = navgatorServices;
_menuRepository = new MenuRepository();
_navgatorServices.OnViewModelChanged += () => { CurrentViewModel = _navgatorServices.CurrentViewModel; };
CurrentViewModel = new HomeViewModel();
CurrentViewModel.OnLoaded();
WeakReferenceMessenger.Default.Register<UpdateMenuMessage>( this,UpdateMenu);
}
2025-05-29 08:58:58 +08:00
private async void UpdateMenu(object recipient, UpdateMenuMessage message)
{
await LoadMenu();
}
2025-05-29 08:58:58 +08:00
public override async void OnLoaded()
{
await LoadMenu();
}
private async Task LoadMenu()
{
var menuList= await _menuRepository.GetMenu();
Menus=new ObservableCollection<MenuBean>(menuList);
2025-05-29 08:58:58 +08:00
}
}