title: Add a header/title to a context menu
body: <p>I want to create a style for all context menus in my app. This style will allow me to add a header/title to my context menus. The style I am using right now is as follows</p>
  
  <pre><code>&lt;Style x:Uid="someStyle" TargetType="{x:Type ContextMenu}"&gt;
      &lt;Setter x:Uid="Setter_240" Property="Background" Value="{DynamicResource someBrush}" /&gt;
      &lt;Setter x:Uid="Setter_241" Property="BorderBrush" Value="{DynamicResource someBorderBrush}" /&gt;
      &lt;Setter x:Uid="Setter_242" Property="SnapsToDevicePixels" Value="True" /&gt;
      &lt;Setter x:Uid="Setter_243" Property="Template"&gt;
          &lt;Setter.Value&gt;
              &lt;ControlTemplate x:Uid="ControlTemplate_30" TargetType="{x:Type ContextMenu}"&gt;
                  &lt;Grid x:Uid="Grid_27"&gt;
                      &lt;Border x:Uid="Border_25" Margin="1" x:Name="Border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" /&gt;
                      &lt;StackPanel x:Uid="StackPanel_4" Background="{TemplateBinding Background}" IsItemsHost="True" ClipToBounds="True" Orientation="Vertical" /&gt;
                  &lt;/Grid&gt;
                  &lt;ControlTemplate.Triggers&gt;
                      &lt;Trigger x:Uid="Trigger_76" Property="IsEnabled" Value="False"&gt;
                          &lt;Setter x:Uid="Setter_244" Property="Background" Value="{DynamicResource someBrush}" TargetName="Border" /&gt;
                          &lt;Setter x:Uid="Setter_245" Property="BorderBrush" Value="{DynamicResource someBrush}" TargetName="Border" /&gt;
                      &lt;/Trigger&gt;
                  &lt;/ControlTemplate.Triggers&gt;
              &lt;/ControlTemplate&gt;
          &lt;/Setter.Value&gt;
      &lt;/Setter&gt;
  &lt;/Style&gt;
  </code></pre>
  
  <p>This style is working just fine for me but is without the ability to add the header/title. My initial idea was to place a dummy Label here</p>
  
  <pre><code>&lt;Grid x:Uid="Grid_27"&gt;
                  &lt;Border x:Uid="Border_25" Margin="1" x:Name="Border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" /&gt;
                  &lt;Label Content {bind some way to allow the user to set it}&gt;
                      &lt;Label.Triggers&gt;
                          &lt;some way to hide the header if not set/&gt;
                      &lt;Label.Triggers&gt;
                  &lt;/Label&gt;
                  &lt;StackPanel x:Uid="StackPanel_4" Background="{TemplateBinding Background}" IsItemsHost="True" ClipToBounds="True" Orientation="Vertical" /&gt;
              &lt;/Grid&gt;
  </code></pre>
  
  <p>I was hoping that I could use this label as a bindable header/title for all context menus. The problem I am having is that I do not know how to make this label bindable so that every context menu can have a different header/title. This solution must also be as self contained as possible. I do not want to make everyone who has every used a context menu have to add multiple lines to enable this functionality i.e I want the header to be optional not a requirement on every single menu so it would be great if there was a trigger or something that could hide the header if it was not set</p>
  
  <p>What is the best/cleanest way to achieve this and make it as reusable as possible?</p>