| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 | 
							- using System;
 
- using System.Collections.Generic;
 
- using System.Linq;
 
- using System.Text;
 
- using System.Threading.Tasks;
 
- using System.Windows.Input;
 
- namespace OpenSEMI.ClientBase.Command
 
- {
 
-     public class BaseCommand<T> : ICommand
 
-     {
 
-         #region Fields
 
-         readonly Action<T> _execute = null;
 
-         readonly Predicate<T> _canExecute = null;
 
-         #endregion // Fields
 
-         #region Constructors
 
-         public BaseCommand(Action<T> execute)
 
-             : this(execute, null)
 
-         {
 
-         }
 
-         /// <summary>
 
-         /// Creates a new command.
 
-         /// </summary>
 
-         /// <param name="execute">The execution logic.</param>
 
-         /// <param name="canExecute">The execution status logic.</param>
 
-         public BaseCommand(Action<T> execute, Predicate<T> canExecute)
 
-         {
 
-             if (execute == null)
 
-                 throw new ArgumentNullException("execute");
 
-             _execute = execute;
 
-             _canExecute = canExecute;
 
-         }
 
-         #endregion // Constructors
 
-         #region ICommand Members
 
-         public bool CanExecute(object parameter)
 
-         {
 
-             return _canExecute == null ? true : _canExecute((T)parameter);
 
-         }
 
-         public event EventHandler CanExecuteChanged
 
-         {
 
-             add
 
-             {
 
-                 if (_canExecute != null)
 
-                     CommandManager.RequerySuggested += value;
 
-             }
 
-             remove
 
-             {
 
-                 if (_canExecute != null)
 
-                     CommandManager.RequerySuggested -= value;
 
-             }
 
-         }
 
-         public void Execute(object parameter)
 
-         {
 
-             _execute((T)parameter);
 
-         }
 
-         #endregion // ICommand Members
 
-     }
 
-     public class BaseCommand : ICommand
 
-     {
 
-         #region Fields
 
-         readonly Action _execute;
 
-         readonly Func<bool> _canExecute;
 
-         #endregion // Fields
 
-         #region Constructors
 
-         /// <summary>
 
-         /// Creates a new command that can always execute.
 
-         /// </summary>
 
-         /// <param name="execute">The execution logic.</param>
 
-         public BaseCommand(Action execute)
 
-             : this(execute, null)
 
-         {
 
-         }
 
-         /// <summary>
 
-         /// Creates a new command.
 
-         /// </summary>
 
-         /// <param name="execute">The execution logic.</param>
 
-         /// <param name="canExecute">The execution status logic.</param>
 
-         public BaseCommand(Action execute, Func<bool> canExecute)
 
-         {
 
-             if (execute == null)
 
-                 throw new ArgumentNullException("execute");
 
-             _execute = execute;
 
-             _canExecute = canExecute;
 
-         }
 
-         #endregion // Constructors
 
-         #region ICommand Members
 
-         public bool CanExecute(object parameter)
 
-         {
 
-             return _canExecute == null ? true : _canExecute();
 
-         }
 
-         public event EventHandler CanExecuteChanged
 
-         {
 
-             add
 
-             {
 
-                 if (_canExecute != null)
 
-                     CommandManager.RequerySuggested += value;
 
-             }
 
-             remove
 
-             {
 
-                 if (_canExecute != null)
 
-                     CommandManager.RequerySuggested -= value;
 
-             }
 
-         }
 
-         public void Execute(object parameter)
 
-         {
 
-             _execute();
 
-         }
 
-         #endregion
 
-     }
 
- }
 
 
  |