title: Best / neatest way to declare RelayCommands
body: <p>I've been trying to find a nice neat and succinct way to declare RelayCommands in my ViewModels. </p>
  
  <p>The best I can come up with is:</p>
  
  <pre><code>public class MyViewModel
  {
      public ICommand StopCommand { get; private set; }
  
      public MyViewModel()
      {
          StopCommand = new RelayCommand(OnStop);
      }
  
      private OnStop(object sender)
      {
           //hammertime
      }
  </code></pre>
  
  <p>}</p>
  
  <p>What I'd really like to do it remove the two stage declaration/construction, something like:</p>
  
  <pre><code>public class MyViewModel
  {
      public readonly ICommand StopCommand = new RelayCommand(OnStop);
  
      private OnStop(object sender)
      {
           //hammertime
      }
  }
  </code></pre>
  
  <p>However, this fails to compile with</p>
  
  <blockquote>
    <p>error CS0236: A field initializer cannot reference the non-static
    field, method, or property 'MyViewModel.OnStop(object)'</p>
  </blockquote>
  
  <p>It there a neater / "standard" way that people use?</p>