Files
YouTubeViewers/YouTubeViewers.WPF/Commands/AsyncCommandBase.cs
2022-08-22 15:56:12 +02:00

45 lines
987 B
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace YouTubeViewers.WPF.Commands
{
public abstract class AsyncCommandBase : CommandBase
{
private bool _isExecuting;
public bool IsExecuting
{
get { return _isExecuting; }
set { _isExecuting = value;
OnCanExecuteChanged();
}
}
public override bool CanExecute(object? parameter)
{
return !_isExecuting && base.CanExecute(parameter);
}
public override async void Execute(object? parameter)
{
IsExecuting = true;
try
{
await ExecuteAsync(parameter);
}
catch (Exception) { }
finally
{
IsExecuting = false;
}
}
public abstract Task ExecuteAsync(object? parameter);
}
}