添加DataService为数据服务类,负责数据的加载工作,通过消息来通知DataService更新数据

This commit is contained in:
2025-06-28 19:32:51 +08:00
parent a04bfc2010
commit dba56f07d2
17 changed files with 181 additions and 34 deletions

View File

@@ -4,6 +4,7 @@ using CommunityToolkit.Mvvm.Input;
using CommunityToolkit.Mvvm.Messaging;
using PMSWPF.Data.Entities;
using PMSWPF.Data.Repositories;
using PMSWPF.Enums;
using PMSWPF.Message;
using PMSWPF.Models;
using PMSWPF.Services;
@@ -13,6 +14,7 @@ namespace PMSWPF.ViewModels;
public partial class MainViewModel : ViewModelBase
{
private readonly NavgatorServices _navgatorServices;
private readonly DataServices _dataServices;
[ObservableProperty] private ViewModelBase currentViewModel;
[ObservableProperty]
@@ -20,32 +22,26 @@ public partial class MainViewModel : ViewModelBase
private readonly MenuRepository _menuRepository;
public MainViewModel(NavgatorServices navgatorServices)
public MainViewModel(NavgatorServices navgatorServices,DataServices dataServices)
{
_navgatorServices = navgatorServices;
_menuRepository = new MenuRepository();
_dataServices = dataServices;
_navgatorServices.OnViewModelChanged += () => { CurrentViewModel = _navgatorServices.CurrentViewModel; };
CurrentViewModel = new HomeViewModel();
CurrentViewModel.OnLoaded();
WeakReferenceMessenger.Default.Register<UpdateMenuMessage>( this,UpdateMenu);
WeakReferenceMessenger.Default.Send<LoadMessage>(new LoadMessage(LoadTypes.Menu));
dataServices.OnMenuListChanged += (menus) =>
{
Menus = new ObservableCollection<MenuBean>(menus);
};
}
public override void OnLoaded()
{
}
private async void UpdateMenu(object recipient, UpdateMenuMessage message)
{
await LoadMenu();
}
public override async void OnLoaded()
{
await LoadMenu();
}
private async Task LoadMenu()
{
var menuList= await _menuRepository.GetMenu();
Menus=new ObservableCollection<MenuBean>(menuList);
}
}