完成页面导航功能

This commit is contained in:
2025-07-26 18:58:52 +08:00
parent eedc9f9c7b
commit e509b7de0b
8 changed files with 53 additions and 36 deletions

View File

@@ -17,7 +17,7 @@ namespace DMS.WPF.ViewModels;
/// <summary>
/// 设备管理视图模型,负责设备的增删改查操作。
/// </summary>
public partial class DevicesViewModel : ViewModelBase
public partial class DevicesViewModel : ViewModelBase,INavigatable
{
private readonly DataServices _dataServices;
private readonly IDialogService _dialogService;
@@ -197,4 +197,9 @@ public partial class DevicesViewModel : ViewModelBase
deviceDetailVm.CurrentDevice = SelectedDevice;
MessageHelper.SendNavgatorMessage(deviceDetailVm);
}
public async Task OnNavigatedToAsync(object parameter)
{
}
}

View File

@@ -11,6 +11,7 @@ using DMS.Helper;
using DMS.Services;
using DMS.ViewModels;
using DMS.WPF.Helper;
using DMS.WPF.ViewModels.Items;
using iNKORE.UI.WPF.Modern.Common.IconKeys;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
@@ -27,13 +28,14 @@ public partial class MainViewModel : ViewModelBase
{
public DataServices DataServices { get; }
private readonly IDialogService _dialogService;
private readonly INavigationService _navigationService;
private readonly ILogger<MainViewModel> _logger;
/// <summary>
/// 当前显示的视图模型。
/// </summary>
[ObservableProperty]
private ViewModelBase currentViewModel;
private ViewModelBase _currentViewModel;
/// <summary>
/// 应用程序的菜单列表。
@@ -48,10 +50,11 @@ public partial class MainViewModel : ViewModelBase
/// <param name="dataServices">数据服务。</param>
/// <param name="dialogService">对话框服务。</param>
/// <param name="logger">日志记录器。</param>
public MainViewModel(DataServices dataServices,
public MainViewModel(DataServices dataServices,INavigationService navigationService,
ILogger<MainViewModel> logger)
{
DataServices = dataServices;
_navigationService = navigationService;
_logger = logger;
CurrentViewModel = new HomeViewModel();
@@ -161,8 +164,9 @@ public partial class MainViewModel : ViewModelBase
/// 处理菜单选择变化的逻辑。
/// </summary>
/// <param name="menu">被选中的菜单项。</param>
public async Task MenuSelectionChanged(MenuBean menu)
public async Task MenuSelectionChanged(MenuBeanItemViewModel menu)
{
_navigationService.NavigateToAsync(menu.TargetViewKey);
// try
// {
// switch (menu.Type)

View File

@@ -50,13 +50,12 @@ public partial class MqttsViewModel : ViewModelBase
private MqttServerItemViewModel _selectedMqtt;
public MqttsViewModel(
ILogger<MqttsViewModel> logger, IDialogService dialogService, DataServices dataServices, NavgatorServices navgatorServices
ILogger<MqttsViewModel> logger, IDialogService dialogService, DataServices dataServices
)
{
_logger = logger;
_dialogService = dialogService;
_dataServices = dataServices;
_navgatorServices = navgatorServices;
// if (dataServices.Mqtts == null || dataServices.Mqtts.Count == 0)
// {