|
using System;
using System.Windows.Input;
namespace MefBasic.Commans
{
public class DelegateCommand: ICommand
{
protected Func<object, bool> CanExecuteDelegate;
protected Action<object> ExecuteDelegate;
public DelegateCommand(Action<object> executeDelegate)
: this(executeDelegate, null)
{
}
public DelegateCommand(Action<object> executeDelegate, Func<object, bool> canExecuteDelegate)
{
CanExecuteDelegate = canExecuteDelegate;
ExecuteDelegate = executeDelegate;
}
protected DelegateCommand()
{
}
#region ICommand Members
public bool CanExecute(object parameter)
{
return CanExecuteDelegate == null || CanExecuteDelegate(parameter);
}
public event EventHandler CanExecuteChanged;
public void Execute(object parameter)
{
if (ExecuteDelegate == null) return;
ExecuteDelegate(parameter);
}
public virtual void RaiseCanExecuteChanged()
{
var canExecuteChangedHandler = CanExecuteChanged;
if (canExecuteChangedHandler != null)
{
canExecuteChangedHandler(this, EventArgs.Empty);
}
}
#endregion
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.