1. 程式人生 > >wpf 可通知介面的Delegate命令

wpf 可通知介面的Delegate命令

publicclassSelfCheckCommand : ICommand

{

publicSelfCheckCommand()

{

}

publicSelfCheckCommand(Action<object> execAction, Func<object, bool> canExecte)

{

ExecuteAction = execAction;

CanExecuteFunc = canExecte;

}

privatebool _canExecuteCache;

publicboolCanExecute(object parameter)

{

if (CanExecuteFunc ==null)

{

returntrue;

}

bool result = CanExecuteFunc(parameter);

if (result != _canExecuteCache)

{

_canExecuteCache = result;

}

return result;

}

publiceventEventHandlerCanExecuteChanged

{

add { CommandManager.RequerySuggested+=value; }

remove { CommandManager

.RequerySuggested-=value; }

}

publicvoidExecute(object parameter)

{

if (ExecuteAction !=null)

{

this.ExecuteAction(parameter);

}

}

publicAction<object> ExecuteAction { get; set; }

publicFunc<object, bool> CanExecuteFunc { get; set; }

}