Create a ContextMenu for any instance of a given control type
===

I'm fairly new to WPF and I have a question regarding the "factorisation" of logic across all controls of the same type.

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.

My question is what is the best way of achieving this:

 - Inheriting from 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.
 - Using the "behaviors"? I could add a new attached property to this type of grid but not sure if that's a good practice
 - Anything else?

I hope my question makes sense!

Note: this question is NOT about exporting to Excel, I know the way to do this with my control. 