Skip to content

Instantly share code, notes, and snippets.

View dimitrispaxinos's full-sized avatar

Dimitris Paxinos dimitrispaxinos

View GitHub Profile
private IDisableableCommand _addCommand;
public IDisableableCommand AddCommand
{
get
{
if (_addCommand == null)
_addCommand = new DisableableCommandAsync(
AddCommandHandler,
obj => true,
new List<IDisableableCommand>() { RemoveCommand, UpdateCommand });
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Input;
namespace AsyncDisablingScopeSample
{
public class DisableableCommandAsync : IDisableableCommand
{
/// <summary>
/// DisableableCommandAsync Constructor
/// </summary>
/// <param name="asyncExecute">Executing Delegate</param>
/// <param name="canExecute">Predicate for enabling/disabling</param>
/// <param name="disablables">List of IDisaeable Items to be disabled while executing</param>
/// <param name="disableWhileInProgress">Disable the Command itself while executing</param>
public DisableableCommandAsync(Func<object,Task> asyncExecute,
Predicate<object> canExecute,
IEnumerable<IDisableableCommand> disablables = null,
using System;
using System.Threading.Tasks;
using System.Windows.Input;
namespace AsyncDisablingScopeSample
{
public class RelayCommandAsync : ICommand
{
#region Fields