51 lines
1.2 KiB
C#
51 lines
1.2 KiB
C#
using System.Collections.ObjectModel;
|
|
using System.ComponentModel;
|
|
using System.Runtime.CompilerServices;
|
|
|
|
namespace EmbyToolbox.ViewModels;
|
|
|
|
public sealed class JsonTreeNodeViewModel : INotifyPropertyChanged
|
|
{
|
|
private bool _isExpanded;
|
|
|
|
public JsonTreeNodeViewModel(string name, string value, string subtreeJson, JsonTreeNodeViewModel? parent = null)
|
|
{
|
|
Name = name;
|
|
Value = value;
|
|
SubtreeJson = subtreeJson;
|
|
Parent = parent;
|
|
}
|
|
|
|
public string Name { get; }
|
|
|
|
public string Value { get; }
|
|
|
|
public string SubtreeJson { get; }
|
|
|
|
public JsonTreeNodeViewModel? Parent { get; }
|
|
|
|
public ObservableCollection<JsonTreeNodeViewModel> Children { get; } = new();
|
|
|
|
public bool IsExpanded
|
|
{
|
|
get => _isExpanded;
|
|
set
|
|
{
|
|
if (_isExpanded == value)
|
|
{
|
|
return;
|
|
}
|
|
|
|
_isExpanded = value;
|
|
OnPropertyChanged();
|
|
}
|
|
}
|
|
|
|
public event PropertyChangedEventHandler? PropertyChanged;
|
|
|
|
private void OnPropertyChanged([CallerMemberName] string? propertyName = null)
|
|
{
|
|
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
|
|
}
|
|
}
|