Mercurial > silverbladetech
view delete me/SilverlightValidation/Commands/RelayCommand.cs @ 64:ba89e36631bc
Latest version
author | Steven Hollidge <stevenhollidge@hotmail.com> |
---|---|
date | Sun, 22 Apr 2012 14:20:52 +0100 |
parents | 3591c26bd63e |
children |
line wrap: on
line source
using System; using System.Windows.Input; namespace SilverlightValidation.Commands { public class RelayCommand : ICommand { public event EventHandler CanExecuteChanged = delegate { }; readonly Action<object> _execute; readonly Predicate<object> _canExecute; public RelayCommand(Action<object> execute, Predicate<object> canExecute = null) { if (execute == null) throw new ArgumentNullException("execute"); _execute = execute; _canExecute = canExecute; } public void UpdateCanExecuteCommand() { CanExecuteChanged(this, new EventArgs()); } public bool CanExecute(object parameter) { return _canExecute == null || _canExecute(parameter); } public void Execute(object parameter) { _execute(parameter); } } }