35 lines
889 B
C#
35 lines
889 B
C#
|
using System;
|
|||
|
using System.Collections.ObjectModel;
|
|||
|
using System.ComponentModel;
|
|||
|
using System.Runtime.CompilerServices;
|
|||
|
|
|||
|
namespace DispenserUI.Models.DTO;
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 用于显示树状菜单
|
|||
|
/// </summary>
|
|||
|
public class TreeNode(string title = "", Type? viewModel = null) : INotifyPropertyChanged
|
|||
|
{
|
|||
|
private ObservableCollection<TreeNode> _children = [];
|
|||
|
|
|||
|
public string Title => title;
|
|||
|
|
|||
|
public ObservableCollection<TreeNode> Children
|
|||
|
{
|
|||
|
get => _children;
|
|||
|
set
|
|||
|
{
|
|||
|
_children = value;
|
|||
|
OnPropertyChanged();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public Type? ViewModel => viewModel;
|
|||
|
|
|||
|
public event PropertyChangedEventHandler? PropertyChanged;
|
|||
|
|
|||
|
protected virtual void OnPropertyChanged([CallerMemberName] string? propertyName = null)
|
|||
|
{
|
|||
|
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
|
|||
|
}
|
|||
|
}
|