I working on a multi-tab application (For Ex: Multi-Tab Text Editor), where each tabitem has its own content. And in contextmenu of tabitem, their is menuitem with a command, say SelectAll command.
After running app, the menu item is always disabled, no command execution is done.
So, how can i make my commandbindings work ?
CODE ::
In Context Menu At TextEditor>
<MenuItem Command="local:TextEditor.SelectAllCommand" Header="Select All" />
In CommandBindings At TextEditor>
<UserControl.CommandBindings>
<CommandBinding Command="local:TextEditor.SelectAllCommand"
Executed="SelectAll_Executed" CanExecute="SelectAll_CanExecute" />
</UserControl.CommandBindings>
The TabItems with TextEditor are created at run time
This happens since the ContextMenus are separate windows with their own VisualTree and LogicalTree.
Use like this
For more check the link below
http://www.wpftutorial.net/RoutedCommandsInContextMenu.html
see biju answer, your DataContext for your ContextMenu is not the one you expect.
and if you have any binding problems in future, take a look at Snoop. its an easy to use tool to check your bindings at runtime.
i always check 2 things: