Files
bluflame/intromat/Intromat/ViewModels/FileViewModel.cs
2026-04-18 22:31:51 +02:00

58 lines
1.5 KiB
C#

using System.IO;
using Intromat.Interfaces;
using ReactiveUI;
namespace Intromat.ViewModels
{
public abstract class FileViewModel : ReactiveObject, ITreeItem, IFile
{
private bool _isExpanded;
private bool _isSelected;
private readonly FolderViewModel _parent;
private readonly ModuleViewModel _module;
private string _name;
private bool _isDirty;
private readonly string _extension;
public FileViewModel(ModuleViewModel module, FolderViewModel parent, string name, string extension)
{
_extension = extension;
_module = module;
_parent = parent;
_name = name;
}
public abstract ReactiveObject CurrentViewModel { get; }
public string FullPath => Path.Combine(_parent.FullPath, $"{_name}.{_extension}");
public bool IsExpanded
{
get => _isExpanded;
set => this.RaiseAndSetIfChanged(ref _isExpanded, value);
}
public bool IsSelected
{
get => _isSelected;
set => this.RaiseAndSetIfChanged(ref _isSelected, value);
}
public virtual string Name
{
get => _name;
set => this.RaiseAndSetIfChanged(ref _name, value);
}
public FolderViewModel Parent => _parent;
public ModuleViewModel Module => _module;
public bool IsDirty
{
get => _isDirty;
set => this.RaiseAndSetIfChanged(ref _isDirty, value);
}
}
}