While copying code for [RelayCommand](http://msdn.microsoft.com/en-us/magazine/dd419663.aspx#id0090030) from Josh Smith article I copied following code

```
public event EventHandler CanExecuteChanged
{
    add { CommandManager.RequerySuggested += value; }
    remove { CommandManager.RequerySuggested -= value; }
}

```

Then after reading [this answer on SO](https://stackoverflow.com/a/6635754/293712) I also copied in my class following code from DelegateCommand class of Prism.

```
protected void NotifyCanExecuteChanged()
{
    if (CanExecuteChanged != null)
    {
        CanExecuteChanged(this, EventArgs.Empty);
    }
}

```

But his gives me an error in NotifyCanExecuteChanged method

> 
> The event 'CanExecuteChanged' can only appear on the left hand side of += or -=
> 
> 
> 

This error is not coming if I remove the add and remove overload from event. Can someone please help me understand the reason behind this?