title: Caliburn.Micro: Bind text of a button that is already bound by convention to a method
body: <p>I'm using Caliburn.Micro's excellent convention-based binding to bind a button to a method on my view model. Thing is, I want the <code>Content</code> of the button to be bound to a <code>string</code> property of the view model.</p>
  
  <p>At the moment I'm allowing the convention binding for the method, and an explicit binding for the content. Here's an example:</p>
  
  <p>E.g.:</p>
  
  <pre><code>&lt;Button x:Name="Submit" Content="{Binding SubmitCaption}" /&gt;
  
  public class MyViewModel : PropertyChangedBase
  {
      public void Submit() {}
      public string SubmitCaption { get; set; } // Technically would raise PropertyChanged event
  }
  </code></pre>
  
  <p>However I was wondering if there's there a more elegant way of doing this? I'm thinking about overriding the convention for buttons so that it still binds the button action to a method but the content to a named-by-convention property.</p>
  
  <pre><code>&lt;Button x:Name="Submit" /&gt;
  
  public class MyViewModel : PropertyChangedBase
  {
      public void Submit() {}
      public string SubmitContent { get; set; } // Technically would raise PropertyChanged event
  }
  </code></pre>