Files
WCS/Cowain.Base/ViewModels/MenuItemViewModel.cs
2026-03-02 09:08:20 +08:00

57 lines
1.3 KiB
C#

using Avalonia.Media;
using CommunityToolkit.Mvvm.ComponentModel;
using System.Collections.Generic;
using System.Windows.Input;
namespace Cowain.Base.ViewModels;
public partial class MenuItemViewModel : ObservableObject
{
/// <summary>
/// 唯一标识
/// </summary>
public string Key { get; set; } = string.Empty;
/// <summary>
/// 按钮文本
/// </summary>
[ObservableProperty]
public string _text;
/// <summary>
/// 图标
/// </summary>
public StreamGeometry? Icon { get; set; }
/// <summary>
/// 子菜单
/// </summary>
public ICollection<MenuItemViewModel>? Items { get; set; }
/// <summary>
/// 菜单是否选中
/// </summary>
[ObservableProperty]
private bool _isActive;
/// <summary>
/// 菜单点击命令
/// </summary>
public ICommand? MenuClickCommand { get; set; }
/// <summary>
/// 命令参数
/// </summary>
public string? CommandParameter { get; set; }
/// <summary>
/// 页面命令
/// </summary>
public string[]? PageActions { get; set; }
public MenuItemViewModel(string text)
{
Text = text;
}
public void AddItem(MenuItemViewModel item)
{
Items ??= [];
Items?.Add(item);
}
}