1
0
mirror of https://github.com/Artemis-RGB/Artemis synced 2025-12-13 05:48:35 +00:00
Artemis/src/Artemis.UI.Avalonia/ViewModelBase.cs

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();
}
}