title: Full implementation of Relay Command - can it be applied to all cases?
body: <p>I'm looking at the full implementation of a Relay Command that can be found <a href="https://stackoverflow.com/a/22286816/6296435">here</a></p>
  
  <p>I heard that the idea behind RelayCommand is to have a sort of "<a href="https://youtu.be/HDSRG7GvPbo?t=180" rel="nofollow noreferrer">universal remote control</a>" to use on all your commands. </p>
  
  <p>If that is the case, I have 2 issues with the implementation:</p>
  
  <p>1) What happens if for certain controls I don't want to pass a parameter? Do I have to? Do I need to change my execute/can-execute functions accordingly to support these parameters?</p>
  
  <p>2) What if I don't want to pass a CommandParameter in XAML? If I want to affect the change of the control by using Property changed, or some other method in my code. Can I effect CanExecute or CanExecuteChanged without passing a CommandParameter in the XAML? </p>
  
  <p>Until now I mainly implemented partial RelayCommands where CanExecute returned true all the time, and I simply binded controls IsEnabled to an extra property in my viewmodel. This works pretty good, but I wonder - what can the full implementation do for me? </p>
  
  <p>( Can the answer give a full working example please? )</p>