清理引用,将NavigatorServices更改为使用Message来实现导航的切换

This commit is contained in:
2025-06-23 17:01:06 +08:00
parent 8ee4b7bc05
commit 8fcd2fdf2a
62 changed files with 711 additions and 767 deletions

View File

@@ -1,9 +1,8 @@
namespace PMSWPF.ViewModels;
public class DataTransformViewModel:ViewModelBase
public class DataTransformViewModel : ViewModelBase
{
public override void OnLoaded()
{
}
}

View File

@@ -1,23 +1,13 @@
using System.Collections.ObjectModel;
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using CommunityToolkit.Mvvm.Messaging;
using HandyControl.Controls;
using HandyControl.Data;
using Microsoft.Extensions.Logging;
using PMSWPF.Data.Entities;
using PMSWPF.Data.Repositories;
using PMSWPF.Enums;
using PMSWPF.Excptions;
using PMSWPF.Extensions;
using PMSWPF.Helper;
using PMSWPF.Message;
using PMSWPF.Models;
using PMSWPF.Services;
using PMSWPF.ViewModels.Dialogs;
using PMSWPF.Views.Dialogs;
using MessageBox = System.Windows.MessageBox;
using Notification = PMSWPF.Models.Notification;
namespace PMSWPF.ViewModels;
@@ -26,11 +16,12 @@ public partial class DevicesViewModel : ViewModelBase
private readonly IDeviceDialogService _deviceDialogService;
private readonly DevicesRepositories _devicesRepositories;
private readonly ILogger<DevicesViewModel> _logger;
[ObservableProperty]
private ObservableCollection<Device> _devices ;
public DevicesViewModel(IDeviceDialogService deviceDialogService, DevicesRepositories devicesRepositories,ILogger<DevicesViewModel> logger
)
[ObservableProperty] private ObservableCollection<Device> _devices;
public DevicesViewModel(IDeviceDialogService deviceDialogService, DevicesRepositories devicesRepositories,
ILogger<DevicesViewModel> logger
)
{
_deviceDialogService = deviceDialogService;
_devicesRepositories = devicesRepositories;
@@ -40,17 +31,16 @@ public partial class DevicesViewModel : ViewModelBase
public async Task OnLoadedAsync()
{
var ds = await _devicesRepositories.GetAll();
Devices=new ObservableCollection<Device>(ds);
Devices = new ObservableCollection<Device>(ds);
}
[RelayCommand]
public async void AddDevice()
public async void AddDevice()
{
Device device = null;
try
{
device= await _deviceDialogService.ShowAddDeviceDialog();
device = await _deviceDialogService.ShowAddDeviceDialog();
if (device != null)
{
var isOk = await _devicesRepositories.Add(device);
@@ -78,9 +68,14 @@ public partial class DevicesViewModel : ViewModelBase
}
}
[RelayCommand]
public void NavigateVt()
{
}
public override async void OnLoaded()
{
// OnLoadedAsync().Await((e) => { _deviceDialogService.ShowMessageDialog("", e.Message); }, () => { });
await OnLoadedAsync();
}
}

View File

@@ -1,30 +1,28 @@
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using PMSWPF.Enums;
using PMSWPF.Extensions;
using PMSWPF.Models;
namespace PMSWPF.ViewModels.Dialogs;
public partial class DeviceDialogViewModel:ObservableObject
public partial class DeviceDialogViewModel : ObservableObject
{
private readonly Device _saveDevice;
[ObservableProperty]
private string title="添加设备";
[ObservableProperty]
private Device device;
[ObservableProperty] private Device device;
[ObservableProperty] private string title = "添加设备";
public DeviceDialogViewModel(Device saveDevice)
{
_saveDevice = saveDevice;
this.device = new Device();
device = new Device();
}
[RelayCommand]
public void AddDevice()
{
this.device.CopyTo<Device>(_saveDevice);
device.CopyTo<Device>(_saveDevice);
}
}

View File

@@ -1,9 +1,8 @@
namespace PMSWPF.ViewModels;
public class HomeViewModel:ViewModelBase
public class HomeViewModel : ViewModelBase
{
public override void OnLoaded()
{
}
}

View File

@@ -1,42 +1,23 @@
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Messaging;
using PMSWPF.Data.Entities;
using PMSWPF.Message;
using System.Collections.ObjectModel;
using PMSWPF.Services;
namespace PMSWPF.ViewModels
namespace PMSWPF.ViewModels;
public partial class MainViewModel : ViewModelBase
{
public partial class MainViewModel : ObservableRecipient, IRecipient<MyMessage>
private readonly NavgatorServices _navgatorServices;
[ObservableProperty] private ViewModelBase currentViewModel;
public MainViewModel(NavgatorServices navgatorServices)
{
private readonly NavgatorServices _navgatorServices;
[ObservableProperty]
private ViewModelBase currentViewModel;
public MainViewModel(NavgatorServices navgatorServices)
{
_navgatorServices = navgatorServices;
_navgatorServices.OnViewModelChanged += () =>
{
CurrentViewModel = _navgatorServices.CurrentViewModel;
};
IsActive = true;
CurrentViewModel = new HomeViewModel();
}
public void NavgateTo<T>() where T : ViewModelBase
{
_navgatorServices.NavigateTo<T>();
}
string text = "Hello Count:";
[ObservableProperty]
string message;
public void Receive(MyMessage message)
{
Message = text + message.Count;
}
_navgatorServices = navgatorServices;
_navgatorServices.OnViewModelChanged += () => { CurrentViewModel = _navgatorServices.CurrentViewModel; };
CurrentViewModel = new HomeViewModel();
}
}
public override void OnLoaded()
{
}
}

View File

@@ -1,9 +1,8 @@
namespace PMSWPF.ViewModels;
public class SettingViewModel:ViewModelBase
public class SettingViewModel : ViewModelBase
{
public override void OnLoaded()
{
}
}

View File

@@ -0,0 +1,8 @@
namespace PMSWPF.ViewModels;
public class VariableTableViewModel : ViewModelBase
{
public override void OnLoaded()
{
}
}

View File

@@ -2,12 +2,7 @@
namespace PMSWPF.ViewModels;
public abstract partial class ViewModelBase:ObservableObject
public abstract class ViewModelBase : ObservableObject
{
public ViewModelBase()
{
}
public abstract void OnLoaded();
}