mirror of
https://github.com/Artemis-RGB/Artemis
synced 2025-12-13 05:48:35 +00:00
49 lines
1.1 KiB
C#
49 lines
1.1 KiB
C#
using System;
|
|
using System.Reactive.Disposables;
|
|
using ReactiveUI;
|
|
|
|
namespace Artemis.UI.Avalonia
|
|
{
|
|
public abstract class ViewModelBase : ReactiveObject
|
|
{
|
|
private string? _displayName;
|
|
|
|
public string? DisplayName
|
|
{
|
|
get => _displayName;
|
|
set => this.RaiseAndSetIfChanged(ref _displayName, value);
|
|
}
|
|
}
|
|
|
|
public abstract class ActivatableViewModelBase : ViewModelBase, IActivatableViewModel, IDisposable
|
|
{
|
|
/// <inheritdoc />
|
|
protected ActivatableViewModelBase()
|
|
{
|
|
this.WhenActivated(disposables =>
|
|
{
|
|
Disposable.Create(Dispose).DisposeWith(disposables);
|
|
});
|
|
}
|
|
|
|
#region IDisposable
|
|
|
|
protected virtual void Dispose(bool disposing)
|
|
{
|
|
if (disposing)
|
|
{
|
|
}
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
public void Dispose()
|
|
{
|
|
Dispose(true);
|
|
GC.SuppressFinalize(this);
|
|
}
|
|
|
|
#endregion
|
|
|
|
public ViewModelActivator Activator { get; } = new();
|
|
}
|
|
} |