Files
DMS/DMS.WPF/ViewModels/Items/MenuBeanItemViewModel.cs

62 lines
1.6 KiB
C#
Raw Normal View History

2025-07-26 14:12:14 +08:00
using System.Collections.ObjectModel;
2025-07-26 16:32:01 +08:00
using System.Windows.Input;
2025-07-26 10:05:43 +08:00
using CommunityToolkit.Mvvm.ComponentModel;
2025-07-26 16:32:01 +08:00
using CommunityToolkit.Mvvm.Input;
2025-07-26 10:05:43 +08:00
using DMS.Application.DTOs;
using DMS.Core.Enums;
2025-07-26 16:32:01 +08:00
using DMS.WPF.Services;
2025-07-26 10:05:43 +08:00
namespace DMS.WPF.ViewModels.Items;
public partial class MenuBeanItemViewModel : ObservableObject
{
public int Id { get; }
[ObservableProperty]
private int? _parentId;
[ObservableProperty]
private string _header;
[ObservableProperty]
private string _icon;
[ObservableProperty]
private MenuType _menuType;
[ObservableProperty]
private int _targetId;
2025-07-26 16:32:01 +08:00
[ObservableProperty]
private string _targetViewKey;
2025-07-26 10:05:43 +08:00
[ObservableProperty]
private string _navigationParameter;
[ObservableProperty]
private int _displayOrder;
2025-07-26 14:12:14 +08:00
[ObservableProperty]
private ObservableCollection<MenuBeanItemViewModel> _children=new ();
2025-07-26 16:32:01 +08:00
/// <summary>
/// 菜单项点击时执行的导航命令。
/// </summary>
public ICommand NavigateCommand { get; }
2025-07-26 10:05:43 +08:00
2025-07-26 16:32:01 +08:00
public MenuBeanItemViewModel(MenuBeanDto dto,INavigationService navigationService)
2025-07-26 10:05:43 +08:00
{
Id = dto.Id;
_parentId = dto.ParentId;
_header = dto.Header;
_icon = dto.Icon;
_menuType = dto.MenuType;
2025-07-26 16:32:01 +08:00
_targetViewKey=dto.TargetViewKey;
2025-07-26 10:05:43 +08:00
_targetId = dto.TargetId;
_navigationParameter = dto.NavigationParameter;
_displayOrder = dto.DisplayOrder;
2025-07-26 16:32:01 +08:00
NavigateCommand = new AsyncRelayCommand(async () =>
{
await navigationService.NavigateToAsync(_targetViewKey, _navigationParameter);
});
2025-07-26 10:05:43 +08:00
}
}