标签:
public class DelegateCommand : ICommand
{
Func<object, bool> canExecute;
Action<object> executeAction;
bool canExecuteCache;
#region 构造函数
public DelegateCommand()
: this(null, null)
{
}
public DelegateCommand(Action<object> executeAction, Func<object, bool> canExecute)
{
this.executeAction = executeAction;
this.canExecute = canExecute;
}
#endregion
#region get-set
public Func<object, bool> CanExecuteEx
{
get { return canExecute; }
set { canExecute = value; }
}
public Action<object> ExecuteActionEx
{
get { return executeAction; }
set { executeAction = value; }
}
#endregion
#region ICommand Members
public bool CanExecute(object parameter)
{
if (canExecute == null) return true;
bool temp = canExecute(parameter);
if (canExecuteCache != temp)
{
canExecuteCache = temp;
}
return canExecuteCache;
}
//public event EventHandler CanExecuteChanged;
public void Execute(object parameter)
{
if (executeAction == null) return;
executeAction(parameter);
}
public event EventHandler CanExecuteChanged
{
add { CommandManager.RequerySuggested += value; }
remove { CommandManager.RequerySuggested -= value; }
}
#endregion
}
ICommand.CanExecuteChanged事件订阅对象的变化
标签:
原文地址:http://www.cnblogs.com/qq247039968/p/4261345.html