private Action<object> _targetExecuteMetod;
private Func<object, bool> _targetCanExcuteMetod;
public BasicCommand(Action<object> ExecuteMetod)
{
_targetExecuteMetod = ExecuteMetod;
}
public BasicCommand(Action<object> ExecuteMetod, Func<object, bool> CanExcuteMetod)
{
_targetExecuteMetod = ExecuteMetod;
_targetCanExcuteMetod = CanExcuteMetod;
}
public event EventHandler? CanExecuteChanged;
public bool CanExecute(object? parameter)
{
if(_targetCanExcuteMetod != null)
{
return _targetCanExcuteMetod(parameter);
}
if(_targetExecuteMetod != null)
{
return true;
}
return false;
}
public void Execute(object? parameter)
{
try
{
if (parameter == null)
{
// TODO: Нужно что-то более внятное
// throw new ArgumentNullException(nameof(parameter));
}
if(_targetExecuteMetod == null)
{
throw new Exception("В команду не передан исполнительный метод");
}
_targetExecuteMetod(parameter);
}
catch(Exception error)
{
throw new Exception(error.Message);
}
}
}
https://pastebin.com/
Хорошо! А что этот зверь делает?
позволяет делиться большими кусками кода
Обсуждают сегодня