You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
942 B
34 lines
942 B
using CommunityToolkit.Mvvm.ComponentModel; |
|
|
|
namespace StabilityMatrix.Avalonia.ViewModels.Base; |
|
|
|
/// <summary> |
|
/// Generic view model for progress reporting. |
|
/// </summary> |
|
public partial class ProgressViewModel : ViewModelBase |
|
{ |
|
[ObservableProperty, NotifyPropertyChangedFor(nameof(IsTextVisible))] |
|
private string? text; |
|
|
|
[ObservableProperty] |
|
private string? description; |
|
|
|
[ObservableProperty, NotifyPropertyChangedFor(nameof(IsProgressVisible))] |
|
private double value; |
|
|
|
[ObservableProperty] |
|
private double maximum = 100; |
|
|
|
[ObservableProperty, NotifyPropertyChangedFor(nameof(IsProgressVisible))] |
|
private bool isIndeterminate; |
|
|
|
public virtual bool IsProgressVisible => Value > 0 || IsIndeterminate; |
|
public virtual bool IsTextVisible => !string.IsNullOrWhiteSpace(Text); |
|
|
|
public void ClearProgress() |
|
{ |
|
Value = 0; |
|
Text = null; |
|
IsIndeterminate = false; |
|
} |
|
}
|
|
|