Интерфейс ICommand объявляет CanExecute
как функцию, которая принимает параметр и возвращает логическое значение.
Ваш _canExecute
принимает параметр и возвращает Predicate<object>
Способ вызова, состоящий в том, чтобы передать параметр в возвращаемое значение exe
exe(parameter)(parameter);
Я сомневаюсь, что это было ваше намерение.
Я думаю, что вы хотите объявить exe
в качестве предиката и пропустить объявление делегата.
private Predicate<object> exe;
Я думаю, вы хотите выглядеть так:
class ViewCommand : ICommand
{
#region ICommand Members
private ICommand _Execute;
Predicate<object> exe;
public bool CanExecute(object parameter)
{
return exe == null ? true : exe(parameter); // <-- Error no implicit conversion between Predicate<object> and bool
}
... // more code
}