title: Create a ContextMenu for any instance of a given control type
body: <p>I'm fairly new to WPF and I have a question regarding the "factorisation" of logic across all controls of the same type.</p>
  
  <p>To be more precise, I want to have, for any instance of an Infragistrics DataGrid, a context menu with a "Export to Excel" button, without having to write any code every time I use the said grid. 
  Also, if by default I'll always have an "Export to Excel" context menu item, I also want to be able to add more items transparently on a case by case basis.
  A bonus would be to be able to remove the Export to Excel button on a specific instance.</p>
  
  <p>My question is what is the best way of achieving this:</p>
  
  <ul>
  <li>Subclassing the DataGrid and adding the ContextMenu programmaticaly on "OnInitialized"? Problem: what about a grid where I want to add extra menu items... the XAML will override what's already there? Also I'd prefer not to have a subclass of my control, just directly use the control itself and use WPF to add the intended behavior.</li>
  <li>Using the "behaviors"? I could add a new attached property to this type of grid but not sure if that's a good practice</li>
  <li>Anything else?</li>
  </ul>
  
  <p>I hope my question makes sense!</p>
  
  <p>Note: this question is NOT about exporting to Excel, I know the way to do this with my control. </p>