using CommunityToolkit.Mvvm.ComponentModel; using System.Collections.ObjectModel; namespace BetterGenshinImpact.Model; public partial class FileTreeNode : ObservableObject { // 统一展示的属性 [ObservableProperty] private string? _name; [ObservableProperty] private string? _version; [ObservableProperty] private string? _author; [ObservableProperty] private bool _isExpanded = false; /// /// 界面上显示是文件夹 /// [ObservableProperty] private bool _isDirectory; /// /// 文件名 /// [ObservableProperty] private string? _fileName; /// /// 完整路径 /// [ObservableProperty] private string? _filePath; /// /// 展示图标路径 /// [ObservableProperty] private string? _iconFilePath; // 节点的值 [ObservableProperty] private T? _value; // 子节点列表 [ObservableProperty] private ObservableCollection> _children = []; public T BuildValue() { Value = default!; return Value; } }